<?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;␊ |
}␊ |
} |