| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051 |
- <?php
- # CurlResponse
- #
- # Author Sean Huber - shuber@huberry.com
- # Date May 2008
- #
- # A basic CURL wrapper for PHP
- #
- # See the README for documentation/examples or http://php.net/curl for more information
- # about the libcurl extension for PHP -- http://github.com/shuber/curl/tree/master
- #
- class CurlResponse
- {
- public $body = '';
- public $headers = array();
- public function __construct($response)
- {
- # Extract headers from response
- $pattern = '#HTTP/\d\.\d.*?$.*?\r\n\r\n#ims';
- preg_match_all($pattern, $response, $matches);
- $headers = explode("\r\n", str_replace("\r\n\r\n", '', array_pop($matches[0])));
- # Extract the version and status from the first header
- $version_and_status = array_shift($headers);
- preg_match('#HTTP/(\d\.\d)\s(\d\d\d)\s(.*)#', $version_and_status, $matches);
- $this->headers['Http-Version'] = $matches[1];
- $this->headers['Status-Code'] = $matches[2];
- $this->headers['Status'] = $matches[2].' '.$matches[3];
- # Convert headers into an associative array
- foreach ($headers as $header) {
- preg_match('#(.*?)\:\s(.*)#', $header, $matches);
- $this->headers[$matches[1]] = $matches[2];
- }
- # Remove the headers from the response body
- $this->body = preg_replace($pattern, '', $response);
- }
- public function __toString()
- {
- return $this->body;
- }
- public function headers(){
- return $this->headers;
- }
- }
|