Mercurial > SimpleWebPresenter
annotate Http.inc @ 108:f2996720e6d6
Embed some flags, support for overriding.
| author | Tom Fredrik "BFG" Klaussen <bfg@blenning.no> |
|---|---|
| date | Mon, 07 Mar 2016 20:44:43 +0100 |
| parents | 2370f4450983 |
| children | 111770d32c2e |
| 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 { |
|
8aadd7a23b68
Moved some functionality from common-functions into Http class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
100 $response = @http_head($url, array("timeout" => $timeout), $info); |
|
8aadd7a23b68
Moved some functionality from common-functions into Http class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
101 |
|
8aadd7a23b68
Moved some functionality from common-functions into Http class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
102 if (array_key_exists('error', $info) && $info['error']) { |
|
8aadd7a23b68
Moved some functionality from common-functions into Http class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
103 throw new RequestException($info); |
|
8aadd7a23b68
Moved some functionality from common-functions into Http class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
104 } |
|
8aadd7a23b68
Moved some functionality from common-functions into Http class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
105 |
|
8aadd7a23b68
Moved some functionality from common-functions into Http class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
106 return self::headersToArray($response); |
|
8aadd7a23b68
Moved some functionality from common-functions into Http class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
107 } |
|
8aadd7a23b68
Moved some functionality from common-functions into Http class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
108 |
|
94
2370f4450983
Document functions and move a few functions to more appropriate places.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
93
diff
changeset
|
109 /** |
|
2370f4450983
Document functions and move a few functions to more appropriate places.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
93
diff
changeset
|
110 * 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
|
111 * |
|
2370f4450983
Document functions and move a few functions to more appropriate places.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
93
diff
changeset
|
112 * @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
|
113 * @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
|
114 * @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
|
115 * @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
|
116 */ |
|
2370f4450983
Document functions and move a few functions to more appropriate places.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
93
diff
changeset
|
117 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
|
118 { |
|
8aadd7a23b68
Moved some functionality from common-functions into Http class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
119 $crl = curl_init(); |
|
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 $descriptorspec = array( |
|
8aadd7a23b68
Moved some functionality from common-functions into Http class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
122 0 => array("pipe", "r"), |
|
8aadd7a23b68
Moved some functionality from common-functions into Http class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
123 1 => array("pipe", "w"), |
|
8aadd7a23b68
Moved some functionality from common-functions into Http class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
124 //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
|
125 ); |
|
8aadd7a23b68
Moved some functionality from common-functions into Http class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
126 |
|
8aadd7a23b68
Moved some functionality from common-functions into Http class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
127 //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
|
128 //being reordered. |
|
8aadd7a23b68
Moved some functionality from common-functions into Http class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
129 $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
|
130 |
|
94
2370f4450983
Document functions and move a few functions to more appropriate places.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
93
diff
changeset
|
131 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
|
132 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
|
133 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
|
134 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
|
135 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
|
136 |
|
8aadd7a23b68
Moved some functionality from common-functions into Http class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
137 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
|
138 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
|
139 $ret = curl_exec($crl); |
|
8aadd7a23b68
Moved some functionality from common-functions into Http class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
140 curl_close($crl); |
|
8aadd7a23b68
Moved some functionality from common-functions into Http class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
141 |
|
8aadd7a23b68
Moved some functionality from common-functions into Http class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
142 fclose($pipes[0]); |
|
8aadd7a23b68
Moved some functionality from common-functions into Http class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
143 $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
|
144 |
|
8aadd7a23b68
Moved some functionality from common-functions into Http class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
145 return self::headersToArray($buf); |
|
8aadd7a23b68
Moved some functionality from common-functions into Http class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
146 } |
|
8aadd7a23b68
Moved some functionality from common-functions into Http class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
147 } |
|
8aadd7a23b68
Moved some functionality from common-functions into Http class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
148 ?> |
