Mercurial > SimpleWebPresenter
annotate Http.inc @ 122:74c22a8dd38f
Support for both http and https for Sitemap
| author | Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no> |
|---|---|
| date | Thu, 28 Dec 2017 18:49:07 +0100 |
| parents | 111770d32c2e |
| children | 51b53cd01080 |
| rev | line source |
|---|---|
|
93
8aadd7a23b68
Moved some functionality from common-functions into Http class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
1 <?php |
|
8aadd7a23b68
Moved some functionality from common-functions into Http class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
2 include_once 'ScriptIncludeCache.inc'; |
|
8aadd7a23b68
Moved some functionality from common-functions into Http class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
3 |
|
8aadd7a23b68
Moved some functionality from common-functions into Http class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
4 /// @cond |
|
8aadd7a23b68
Moved some functionality from common-functions into Http class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
5 $baseDir = dirname(__FILE__); |
|
8aadd7a23b68
Moved some functionality from common-functions into Http class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
6 $cache = ScriptIncludeCache::instance(__FILE__); |
|
8aadd7a23b68
Moved some functionality from common-functions into Http class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
7 /// @endcond |
|
8aadd7a23b68
Moved some functionality from common-functions into Http class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
8 |
|
94
2370f4450983
Document functions and move a few functions to more appropriate places.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
93
diff
changeset
|
9 /** |
|
2370f4450983
Document functions and move a few functions to more appropriate places.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
93
diff
changeset
|
10 * Thrown if a request has gone bad |
|
2370f4450983
Document functions and move a few functions to more appropriate places.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
93
diff
changeset
|
11 */ |
|
2370f4450983
Document functions and move a few functions to more appropriate places.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
93
diff
changeset
|
12 class RequestException extends RuntimeException |
|
2370f4450983
Document functions and move a few functions to more appropriate places.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
93
diff
changeset
|
13 { |
|
2370f4450983
Document functions and move a few functions to more appropriate places.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
93
diff
changeset
|
14 private $_info; |
|
2370f4450983
Document functions and move a few functions to more appropriate places.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
93
diff
changeset
|
15 |
|
2370f4450983
Document functions and move a few functions to more appropriate places.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
93
diff
changeset
|
16 /** |
|
2370f4450983
Document functions and move a few functions to more appropriate places.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
93
diff
changeset
|
17 * Constructs a RequestException |
|
2370f4450983
Document functions and move a few functions to more appropriate places.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
93
diff
changeset
|
18 * |
|
2370f4450983
Document functions and move a few functions to more appropriate places.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
93
diff
changeset
|
19 * @param $info an info array as defined in http_get, if a key with |
|
2370f4450983
Document functions and move a few functions to more appropriate places.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
93
diff
changeset
|
20 * name error exist, this will be the error text for the |
|
2370f4450983
Document functions and move a few functions to more appropriate places.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
93
diff
changeset
|
21 * RuntimeException |
|
2370f4450983
Document functions and move a few functions to more appropriate places.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
93
diff
changeset
|
22 */ |
|
2370f4450983
Document functions and move a few functions to more appropriate places.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
93
diff
changeset
|
23 function __construct($info) |
|
2370f4450983
Document functions and move a few functions to more appropriate places.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
93
diff
changeset
|
24 { |
|
2370f4450983
Document functions and move a few functions to more appropriate places.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
93
diff
changeset
|
25 $this->_info = $info; |
|
2370f4450983
Document functions and move a few functions to more appropriate places.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
93
diff
changeset
|
26 if (array_key_exists('error', $info)) { |
|
2370f4450983
Document functions and move a few functions to more appropriate places.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
93
diff
changeset
|
27 parent::__construct($info['error']); |
|
2370f4450983
Document functions and move a few functions to more appropriate places.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
93
diff
changeset
|
28 } |
|
2370f4450983
Document functions and move a few functions to more appropriate places.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
93
diff
changeset
|
29 } |
|
2370f4450983
Document functions and move a few functions to more appropriate places.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
93
diff
changeset
|
30 |
|
2370f4450983
Document functions and move a few functions to more appropriate places.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
93
diff
changeset
|
31 /** |
|
2370f4450983
Document functions and move a few functions to more appropriate places.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
93
diff
changeset
|
32 * Get the info object associated with this RequestException |
|
2370f4450983
Document functions and move a few functions to more appropriate places.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
93
diff
changeset
|
33 * |
|
2370f4450983
Document functions and move a few functions to more appropriate places.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
93
diff
changeset
|
34 * @return $info an info array as defined in http_get |
|
2370f4450983
Document functions and move a few functions to more appropriate places.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
93
diff
changeset
|
35 */ |
|
2370f4450983
Document functions and move a few functions to more appropriate places.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
93
diff
changeset
|
36 function info() |
|
2370f4450983
Document functions and move a few functions to more appropriate places.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
93
diff
changeset
|
37 { |
|
2370f4450983
Document functions and move a few functions to more appropriate places.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
93
diff
changeset
|
38 return $this->_info; |
|
2370f4450983
Document functions and move a few functions to more appropriate places.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
93
diff
changeset
|
39 } |
|
2370f4450983
Document functions and move a few functions to more appropriate places.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
93
diff
changeset
|
40 } |
|
2370f4450983
Document functions and move a few functions to more appropriate places.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
93
diff
changeset
|
41 |
|
2370f4450983
Document functions and move a few functions to more appropriate places.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
93
diff
changeset
|
42 /** |
|
2370f4450983
Document functions and move a few functions to more appropriate places.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
93
diff
changeset
|
43 * Http contains a set of functions for retrieving http information |
|
2370f4450983
Document functions and move a few functions to more appropriate places.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
93
diff
changeset
|
44 */ |
|
93
8aadd7a23b68
Moved some functionality from common-functions into Http class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
45 class Http |
|
8aadd7a23b68
Moved some functionality from common-functions into Http class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
46 { |
|
94
2370f4450983
Document functions and move a few functions to more appropriate places.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
93
diff
changeset
|
47 /** |
|
2370f4450983
Document functions and move a few functions to more appropriate places.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
93
diff
changeset
|
48 * Gets the content of a page |
|
2370f4450983
Document functions and move a few functions to more appropriate places.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
93
diff
changeset
|
49 * |
|
2370f4450983
Document functions and move a few functions to more appropriate places.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
93
diff
changeset
|
50 * This mimics the file_content with a uri parameter which is often |
|
2370f4450983
Document functions and move a few functions to more appropriate places.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
93
diff
changeset
|
51 * disabled due to security reasons |
|
2370f4450983
Document functions and move a few functions to more appropriate places.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
93
diff
changeset
|
52 * |
|
2370f4450983
Document functions and move a few functions to more appropriate places.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
93
diff
changeset
|
53 * @param $uri The uri to fetch |
|
2370f4450983
Document functions and move a few functions to more appropriate places.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
93
diff
changeset
|
54 */ |
|
2370f4450983
Document functions and move a few functions to more appropriate places.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
93
diff
changeset
|
55 static function get_uri_contents($uri) |
|
2370f4450983
Document functions and move a few functions to more appropriate places.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
93
diff
changeset
|
56 { |
|
2370f4450983
Document functions and move a few functions to more appropriate places.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
93
diff
changeset
|
57 $crl = curl_init(); |
|
2370f4450983
Document functions and move a few functions to more appropriate places.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
93
diff
changeset
|
58 $timeout = 5; |
|
2370f4450983
Document functions and move a few functions to more appropriate places.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
93
diff
changeset
|
59 |
|
2370f4450983
Document functions and move a few functions to more appropriate places.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
93
diff
changeset
|
60 curl_setopt ($crl, CURLOPT_URL, $uri); |
|
2370f4450983
Document functions and move a few functions to more appropriate places.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
93
diff
changeset
|
61 curl_setopt ($crl, CURLOPT_RETURNTRANSFER, 1); |
|
2370f4450983
Document functions and move a few functions to more appropriate places.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
93
diff
changeset
|
62 curl_setopt ($crl, CURLOPT_CONNECTTIMEOUT, $timeout); |
|
2370f4450983
Document functions and move a few functions to more appropriate places.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
93
diff
changeset
|
63 $ret = curl_exec($crl); |
|
2370f4450983
Document functions and move a few functions to more appropriate places.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
93
diff
changeset
|
64 curl_close($crl); |
|
2370f4450983
Document functions and move a few functions to more appropriate places.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
93
diff
changeset
|
65 return $ret; |
|
2370f4450983
Document functions and move a few functions to more appropriate places.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
93
diff
changeset
|
66 } |
|
2370f4450983
Document functions and move a few functions to more appropriate places.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
93
diff
changeset
|
67 |
|
2370f4450983
Document functions and move a few functions to more appropriate places.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
93
diff
changeset
|
68 /** |
|
2370f4450983
Document functions and move a few functions to more appropriate places.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
93
diff
changeset
|
69 * Splits an http header response into an associative array |
|
2370f4450983
Document functions and move a few functions to more appropriate places.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
93
diff
changeset
|
70 * |
|
2370f4450983
Document functions and move a few functions to more appropriate places.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
93
diff
changeset
|
71 * @param $response The headers to parse |
|
2370f4450983
Document functions and move a few functions to more appropriate places.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
93
diff
changeset
|
72 * @return an Associative array, the key '' refers to the HTTP status header |
|
2370f4450983
Document functions and move a few functions to more appropriate places.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
93
diff
changeset
|
73 */ |
|
93
8aadd7a23b68
Moved some functionality from common-functions into Http class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
74 static function headersToArray($response) |
|
8aadd7a23b68
Moved some functionality from common-functions into Http class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
75 { |
|
8aadd7a23b68
Moved some functionality from common-functions into Http class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
76 $headers = array(); |
|
8aadd7a23b68
Moved some functionality from common-functions into Http class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
77 $response = trim($response); |
|
8aadd7a23b68
Moved some functionality from common-functions into Http class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
78 $str = explode("\n", $response); |
|
8aadd7a23b68
Moved some functionality from common-functions into Http class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
79 $headers[''] = trim($str[0]); |
|
8aadd7a23b68
Moved some functionality from common-functions into Http class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
80 foreach($str as $kv) { |
|
8aadd7a23b68
Moved some functionality from common-functions into Http class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
81 $p = strpos($kv, ":"); |
|
8aadd7a23b68
Moved some functionality from common-functions into Http class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
82 if ($p) { |
|
8aadd7a23b68
Moved some functionality from common-functions into Http class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
83 $key = substr($kv, 0, $p); |
|
8aadd7a23b68
Moved some functionality from common-functions into Http class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
84 $value = trim(substr($kv, $p + 1)); |
|
8aadd7a23b68
Moved some functionality from common-functions into Http class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
85 $headers[$key] = $value; |
|
8aadd7a23b68
Moved some functionality from common-functions into Http class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
86 } |
|
8aadd7a23b68
Moved some functionality from common-functions into Http class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
87 } |
|
8aadd7a23b68
Moved some functionality from common-functions into Http class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
88 return $headers; |
|
8aadd7a23b68
Moved some functionality from common-functions into Http class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
89 } |
|
8aadd7a23b68
Moved some functionality from common-functions into Http class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
90 |
|
8aadd7a23b68
Moved some functionality from common-functions into Http class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
91 /** |
|
8aadd7a23b68
Moved some functionality from common-functions into Http class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
92 * Queries a URL for headers |
|
8aadd7a23b68
Moved some functionality from common-functions into Http class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
93 * |
|
8aadd7a23b68
Moved some functionality from common-functions into Http class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
94 * @param $url the url to query |
|
94
2370f4450983
Document functions and move a few functions to more appropriate places.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
93
diff
changeset
|
95 * @param $timeout float number of seconds to wait before timeout |
|
93
8aadd7a23b68
Moved some functionality from common-functions into Http class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
96 * @return an associative array of all headers returned |
|
8aadd7a23b68
Moved some functionality from common-functions into Http class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
97 */ |
|
8aadd7a23b68
Moved some functionality from common-functions into Http class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
98 static function getHeaders($url, $timeout = 1) |
|
8aadd7a23b68
Moved some functionality from common-functions into Http class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
99 { |
|
120
111770d32c2e
Workaround for pecl_http not working with PHP7
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
94
diff
changeset
|
100 //Workaround when getHeaders doesn't work |
|
111770d32c2e
Workaround for pecl_http not working with PHP7
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
94
diff
changeset
|
101 if (false) { |
|
111770d32c2e
Workaround for pecl_http not working with PHP7
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
94
diff
changeset
|
102 $response = http_head($url, array("timeout" => $timeout), $info); |
|
111770d32c2e
Workaround for pecl_http not working with PHP7
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
94
diff
changeset
|
103 if (array_key_exists('error', $info) && $info['error']) { |
|
111770d32c2e
Workaround for pecl_http not working with PHP7
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
94
diff
changeset
|
104 throw new RequestException($info); |
|
111770d32c2e
Workaround for pecl_http not working with PHP7
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
94
diff
changeset
|
105 } |
|
111770d32c2e
Workaround for pecl_http not working with PHP7
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
94
diff
changeset
|
106 return self::headersToArray($response); |
|
111770d32c2e
Workaround for pecl_http not working with PHP7
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
94
diff
changeset
|
107 } |
|
111770d32c2e
Workaround for pecl_http not working with PHP7
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
94
diff
changeset
|
108 elseif (true) { |
|
111770d32c2e
Workaround for pecl_http not working with PHP7
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
94
diff
changeset
|
109 $rp = get_headers($url); |
|
111770d32c2e
Workaround for pecl_http not working with PHP7
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
94
diff
changeset
|
110 $response=array('' => array_shift ($rp)); |
|
111770d32c2e
Workaround for pecl_http not working with PHP7
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
94
diff
changeset
|
111 foreach($rp as $kv) { |
|
111770d32c2e
Workaround for pecl_http not working with PHP7
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
94
diff
changeset
|
112 $tmp=array_map('trim', explode(':', $kv, 2)); |
|
111770d32c2e
Workaround for pecl_http not working with PHP7
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
94
diff
changeset
|
113 $response[$tmp[0]]=$tmp[1]; |
|
111770d32c2e
Workaround for pecl_http not working with PHP7
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
94
diff
changeset
|
114 } |
|
111770d32c2e
Workaround for pecl_http not working with PHP7
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
94
diff
changeset
|
115 return $response; |
|
111770d32c2e
Workaround for pecl_http not working with PHP7
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
94
diff
changeset
|
116 } |
|
111770d32c2e
Workaround for pecl_http not working with PHP7
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
94
diff
changeset
|
117 else { |
|
111770d32c2e
Workaround for pecl_http not working with PHP7
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
94
diff
changeset
|
118 return array('' => 'HTTP/1.1 200 OK'); |
|
93
8aadd7a23b68
Moved some functionality from common-functions into Http class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
119 } |
|
8aadd7a23b68
Moved some functionality from common-functions into Http class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
120 |
|
8aadd7a23b68
Moved some functionality from common-functions into Http class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
121 } |
|
8aadd7a23b68
Moved some functionality from common-functions into Http class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
122 |
|
94
2370f4450983
Document functions and move a few functions to more appropriate places.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
93
diff
changeset
|
123 /** |
|
2370f4450983
Document functions and move a few functions to more appropriate places.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
93
diff
changeset
|
124 * Performs a post to an URI for headers |
|
2370f4450983
Document functions and move a few functions to more appropriate places.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
93
diff
changeset
|
125 * |
|
2370f4450983
Document functions and move a few functions to more appropriate places.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
93
diff
changeset
|
126 * @param $uri the uri to query |
|
2370f4450983
Document functions and move a few functions to more appropriate places.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
93
diff
changeset
|
127 * @param $params an associative array of params to post |
|
2370f4450983
Document functions and move a few functions to more appropriate places.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
93
diff
changeset
|
128 * @param $timeout float number of seconds to wait before timeout |
|
2370f4450983
Document functions and move a few functions to more appropriate places.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
93
diff
changeset
|
129 * @return an associative array of all headers returned |
|
2370f4450983
Document functions and move a few functions to more appropriate places.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
93
diff
changeset
|
130 */ |
|
2370f4450983
Document functions and move a few functions to more appropriate places.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
93
diff
changeset
|
131 static function postHeaders($uri, $params, $timeout = 1) |
|
93
8aadd7a23b68
Moved some functionality from common-functions into Http class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
132 { |
|
8aadd7a23b68
Moved some functionality from common-functions into Http class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
133 $crl = curl_init(); |
|
8aadd7a23b68
Moved some functionality from common-functions into Http class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
134 |
|
8aadd7a23b68
Moved some functionality from common-functions into Http class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
135 $descriptorspec = array( |
|
8aadd7a23b68
Moved some functionality from common-functions into Http class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
136 0 => array("pipe", "r"), |
|
8aadd7a23b68
Moved some functionality from common-functions into Http class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
137 1 => array("pipe", "w"), |
|
8aadd7a23b68
Moved some functionality from common-functions into Http class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
138 //2 => array("file", "/tmp/error-output.txt", "a") |
|
8aadd7a23b68
Moved some functionality from common-functions into Http class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
139 ); |
|
8aadd7a23b68
Moved some functionality from common-functions into Http class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
140 |
|
8aadd7a23b68
Moved some functionality from common-functions into Http class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
141 //We use tac, since it buffers, and we don't care about the output |
|
8aadd7a23b68
Moved some functionality from common-functions into Http class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
142 //being reordered. |
|
8aadd7a23b68
Moved some functionality from common-functions into Http class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
143 $process = proc_open('tac | tac', $descriptorspec, $pipes); |
|
8aadd7a23b68
Moved some functionality from common-functions into Http class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
144 |
|
94
2370f4450983
Document functions and move a few functions to more appropriate places.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
93
diff
changeset
|
145 curl_setopt ($crl, CURLOPT_URL, $uri); |
|
93
8aadd7a23b68
Moved some functionality from common-functions into Http class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
146 curl_setopt ($crl, CURLOPT_WRITEHEADER, $pipes[0]); |
|
8aadd7a23b68
Moved some functionality from common-functions into Http class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
147 curl_setopt ($crl, CURLOPT_NOBODY, true); |
|
8aadd7a23b68
Moved some functionality from common-functions into Http class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
148 curl_setopt ($crl, CURLOPT_POST, true); |
|
8aadd7a23b68
Moved some functionality from common-functions into Http class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
149 curl_setopt ($crl, CURLOPT_POSTFIELDS, $params); |
|
8aadd7a23b68
Moved some functionality from common-functions into Http class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
150 |
|
8aadd7a23b68
Moved some functionality from common-functions into Http class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
151 curl_setopt ($crl, CURLOPT_RETURNTRANSFER, 1); |
|
8aadd7a23b68
Moved some functionality from common-functions into Http class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
152 curl_setopt ($crl, CURLOPT_CONNECTTIMEOUT, $timeout); |
|
8aadd7a23b68
Moved some functionality from common-functions into Http class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
153 $ret = curl_exec($crl); |
|
8aadd7a23b68
Moved some functionality from common-functions into Http class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
154 curl_close($crl); |
|
8aadd7a23b68
Moved some functionality from common-functions into Http class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
155 |
|
8aadd7a23b68
Moved some functionality from common-functions into Http class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
156 fclose($pipes[0]); |
|
8aadd7a23b68
Moved some functionality from common-functions into Http class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
157 $buf = fread($pipes[1], 8192); |
|
8aadd7a23b68
Moved some functionality from common-functions into Http class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
158 |
|
8aadd7a23b68
Moved some functionality from common-functions into Http class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
159 return self::headersToArray($buf); |
|
8aadd7a23b68
Moved some functionality from common-functions into Http class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
160 } |
|
8aadd7a23b68
Moved some functionality from common-functions into Http class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
161 } |
|
8aadd7a23b68
Moved some functionality from common-functions into Http class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
162 ?> |
