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