srchub

srchub Git Source Tree


Root/pluf/src/Pluf/thirdparty/ccurl.php

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
<?php
// Copied from PHP manual comment section:
// Modified to fit Inefero's needs
class ccurl {
    protected $_useragent = 'Indefero Hook Sender (http://www.indefero.net); https://srchub.org Fork';
    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*?
    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
        // 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;
    }
}

Archive Download this file

Branches

Number of commits:
Page rendered in 0.31314s using 11 queries.