diff --git a/src/Unirest/Request.php b/src/Unirest/Request.php index aca5953..5c8276b 100644 --- a/src/Unirest/Request.php +++ b/src/Unirest/Request.php @@ -241,7 +241,7 @@ class Request private static function getArrayFromQuerystring($query) { - $query = preg_replace_callback('/(?:^|(?<=&))[^=[]+/', function($match) { + $query = preg_replace_callback('/(?:^|(?<=&))[^=[]+/', function ($match) { return bin2hex(urldecode($match[0])); }, $query); diff --git a/src/Unirest/Response.php b/src/Unirest/Response.php index 66aad29..b99cf89 100644 --- a/src/Unirest/Response.php +++ b/src/Unirest/Response.php @@ -18,7 +18,7 @@ class Response public function __construct($code, $raw_body, $headers) { $this->code = $code; - $this->headers = http_parse_headers($headers); + $this->headers = $this->parseHeaders($headers); $this->raw_body = $raw_body; $this->body = $raw_body; $json = json_decode($raw_body); @@ -27,41 +27,44 @@ class Response $this->body = $json; } } -} -/** - * if PECL_HTTP is not available use a fall back function - * - * thanks to ricardovermeltfoort@gmail.com - * http://php.net/manual/en/function.http-parse-headers.php#112986 - */ -if (!function_exists('http_parse_headers')) { - function http_parse_headers($raw_headers) { - $headers = array(); - $key = ''; + /** + * if PECL_HTTP is not available use a fall back function + * + * thanks to ricardovermeltfoort@gmail.com + * http://php.net/manual/en/function.http-parse-headers.php#112986 + */ + private function parseHeaders($raw_headers) { + if (function_exists('http_parse_headers')) { + return http_parse_headers($raw_headers); + } else { - foreach(explode("\n", $raw_headers) as $i => $h) { - $h = explode(':', $h, 2); + $headers = array(); + $key = ''; - if (isset($h[1])) { - if (!isset($headers[$h[0]])) { - $headers[$h[0]] = trim($h[1]); - } elseif (is_array($headers[$h[0]])) { - $headers[$h[0]] = array_merge($headers[$h[0]], array(trim($h[1]))); + foreach (explode("\n", $raw_headers) as $i => $h) { + $h = explode(':', $h, 2); + + if (isset($h[1])) { + if (!isset($headers[$h[0]])) { + $headers[$h[0]] = trim($h[1]); + } elseif (is_array($headers[$h[0]])) { + $headers[$h[0]] = array_merge($headers[$h[0]], array(trim($h[1]))); + } else { + $headers[$h[0]] = array_merge(array($headers[$h[0]]), array(trim($h[1]))); + } + + $key = $h[0]; } else { - $headers[$h[0]] = array_merge(array($headers[$h[0]]), array(trim($h[1]))); - } - - $key = $h[0]; - } else { - if (substr($h[0], 0, 1) == "\t") { - $headers[$key] .= "\r\n\t".trim($h[0]); - } elseif (!$key){ - $headers[0] = trim($h[0]); + if (substr($h[0], 0, 1) == "\t") { + $headers[$key] .= "\r\n\t".trim($h[0]); + } elseif (!$key) { + $headers[0] = trim($h[0]); + } } } - } - return $headers; + return $headers; + } } } diff --git a/tests/Unirest/RequestTest.php b/tests/Unirest/RequestTest.php index d24fd57..9c52f26 100644 --- a/tests/Unirest/RequestTest.php +++ b/tests/Unirest/RequestTest.php @@ -303,7 +303,7 @@ class UnirestTest extends \PHPUnit_Framework_TestCase { Request::timeout(1); - $response = Request::get('http://httpbin.org/delay/3'); + Request::get('http://httpbin.org/delay/3'); Request::timeout(null); // Cleaning timeout for the other tests } @@ -353,7 +353,7 @@ class UnirestTest extends \PHPUnit_Framework_TestCase public function testBasicAuthentication() { - $response = Request::get('http://httpbin.org/get', null, null, 'user', 'password'); + $response = Request::get('http://httpbin.org/get', null, array(), 'user', 'password'); $headers = $response->body->headers; $this->assertEquals('Basic dXNlcjpwYXNzd29yZA==', $headers->Authorization); }