149 lines
4.3 KiB
PHP
149 lines
4.3 KiB
PHP
<?php
|
|
|
|
namespace phpoauthlib2;
|
|
|
|
// Copied from PHP manual comment section:
|
|
// http://php.net/manual/en/book.curl.php#90821
|
|
// Modified to fit Inefero's/srchub needs
|
|
// Now used for oauth lib
|
|
class ccurl {
|
|
protected $_useragent = 'phpoauthlib2 (http://www.srchub.org); https://srchub.org/p/phpoauthlib2 PHPOAuthLib';
|
|
protected $_url;
|
|
protected $_followlocation;
|
|
protected $_timeout;
|
|
protected $_maxRedirects;
|
|
protected $_cookieFileLocation = './cookie.txt';
|
|
protected $_post;
|
|
protected $_postFields;
|
|
protected $_referer ="";
|
|
|
|
// Get around some broken webservers *cough*IIS*cough*?
|
|
// http://stackoverflow.com/questions/14459704/does-empty-expect-header-mean-anything
|
|
protected $_header = array('Expect:');
|
|
|
|
protected $_session;
|
|
protected $_webpage;
|
|
protected $_includeHeader;
|
|
protected $_noBody;
|
|
protected $_status;
|
|
protected $_binaryTransfer;
|
|
public $authentication = 0;
|
|
public $auth_name = '';
|
|
public $auth_pass = '';
|
|
|
|
public function useAuth($use){
|
|
$this->authentication = 0;
|
|
if($use == true) $this->authentication = 1;
|
|
}
|
|
|
|
public function setName($name){
|
|
$this->auth_name = $name;
|
|
}
|
|
public function setPass($pass){
|
|
$this->auth_pass = $pass;
|
|
}
|
|
|
|
public function addHeader($head)
|
|
{
|
|
$this->_header[] = $head;
|
|
}
|
|
|
|
public function __construct($url,$followlocation = true,$timeOut = 30,$maxRedirecs = 4,$binaryTransfer = false,$includeHeader = false,$noBody = false)
|
|
{
|
|
$this->_url = $url;
|
|
$this->_followlocation = $followlocation;
|
|
$this->_timeout = $timeOut;
|
|
$this->_maxRedirects = $maxRedirecs;
|
|
$this->_noBody = $noBody;
|
|
$this->_includeHeader = $includeHeader;
|
|
$this->_binaryTransfer = $binaryTransfer;
|
|
|
|
$this->_cookieFileLocation = dirname(__FILE__).'/cookie.txt';
|
|
|
|
}
|
|
|
|
public function setReferer($referer){
|
|
$this->_referer = $referer;
|
|
}
|
|
|
|
public function setCookiFileLocation($path)
|
|
{
|
|
$this->_cookieFileLocation = $path;
|
|
}
|
|
|
|
public function setPost ($postFields)
|
|
{
|
|
$this->_post = true;
|
|
$this->_postFields = $postFields;
|
|
}
|
|
|
|
public function setUserAgent($userAgent)
|
|
{
|
|
$this->_useragent = $userAgent;
|
|
}
|
|
|
|
public function createCurl($url = 'nul')
|
|
{
|
|
if($url != 'nul'){
|
|
$this->_url = $url;
|
|
}
|
|
|
|
$s = curl_init();
|
|
|
|
curl_setopt($s,CURLOPT_URL,$this->_url);
|
|
|
|
// I understand the implications here - but this isn't a client application
|
|
// if my ISP is performing MITM sniffing I have bigger fish to fry
|
|
// also the security of a CA signed certificate is questionable at best
|
|
// https://www.schneier.com/blog/archives/2012/02/verisign_hacked.html
|
|
// Email me if you want to discus this adamsna@datanethost.net
|
|
// NA - 12/10/2014
|
|
curl_setopt($s, CURLOPT_SSL_VERIFYPEER, false);
|
|
|
|
curl_setopt($s,CURLOPT_HTTPHEADER,$this->_header);
|
|
curl_setopt($s,CURLOPT_TIMEOUT,$this->_timeout);
|
|
curl_setopt($s,CURLOPT_MAXREDIRS,$this->_maxRedirects);
|
|
curl_setopt($s,CURLOPT_RETURNTRANSFER,true);
|
|
curl_setopt($s,CURLOPT_FOLLOWLOCATION,$this->_followlocation);
|
|
curl_setopt($s,CURLOPT_COOKIEJAR,$this->_cookieFileLocation);
|
|
curl_setopt($s,CURLOPT_COOKIEFILE,$this->_cookieFileLocation);
|
|
|
|
if($this->authentication == 1){
|
|
curl_setopt($s, CURLOPT_USERPWD, $this->auth_name.':'.$this->auth_pass);
|
|
}
|
|
if($this->_post)
|
|
{
|
|
//curl_setopt($s,CURLOPT_POST,true);
|
|
curl_setopt($s, CURLOPT_CUSTOMREQUEST, "POST");
|
|
curl_setopt($s,CURLOPT_POSTFIELDS,$this->_postFields);
|
|
|
|
}
|
|
|
|
if($this->_includeHeader)
|
|
{
|
|
curl_setopt($s,CURLOPT_HEADER,true);
|
|
}
|
|
|
|
if($this->_noBody)
|
|
{
|
|
curl_setopt($s,CURLOPT_NOBODY,true);
|
|
}
|
|
|
|
curl_setopt($s,CURLOPT_USERAGENT,$this->_useragent);
|
|
curl_setopt($s,CURLOPT_REFERER,$this->_referer);
|
|
|
|
$this->_webpage = curl_exec($s);
|
|
$this->_status = curl_getinfo($s,CURLINFO_HTTP_CODE);
|
|
curl_close($s);
|
|
|
|
}
|
|
|
|
public function getHttpStatus()
|
|
{
|
|
return $this->_status;
|
|
}
|
|
|
|
public function __tostring(){
|
|
return $this->_webpage;
|
|
}
|
|
} |