private function parse($response)
    {
        // Explode the response into headers and body parts (separated by double EOL)
        list($headers, $response) = explode("\r\n\r\n", $response, 2);
        
        // Explode response headers
        $lines = explode("\r\n", $headers);
        
        // If the status code is 100, the API server must send a final response
        // We need to explode the response again to get the actual response
        if (preg_match('#^HTTP/1.1 100#', $lines[0])) {
            list($headers, $response) = explode("\r\n\r\n", $response, 2);
            $lines = explode("\r\n", $headers);
        }
        
        // Get the HTTP response code from the first line
        $first = array_shift($lines);
        $pattern = '#^HTTP/1.1 ([0-9]{3})#';
        preg_match($pattern, $first, $matches);
        $code = $matches[1];
        
        // Parse the remaining headers into an associative array
        $headers = array();
        foreach ($lines as $line) {
            list($k, $v) = explode(': ', $line, 2);
            $headers[strtolower($k)] = $v;
        }
        
        // If the response body is not a JSON encoded string
        // we'll return the entire response body
        if (!$body = json_decode($response)) {
            $body = $response;
        }
        
        return array('code' => $code, 'body' => $body, 'headers' => $headers);
    }
private function parse($response)
    {
        // Explode the response into headers and body parts (separated by double EOL)
        list($headers, $response) = explode("\r\n\r\n", $response, 2);
        
        // Explode response headers
        $lines = explode("\r\n", $headers);
        
        // If the status code is 100, the API server must send a final response
        // We need to explode the response again to get the actual response
        if (preg_match('#^HTTP/1.1 100#', $lines[0])) {
            list($headers, $response) = explode("\r\n\r\n", $response, 2);
            $lines = explode("\r\n", $headers);
        }
        
        // Get the HTTP response code from the first line
        $first = array_shift($lines);
        $pattern = '#^HTTP/1.1 ([0-9]{3})#';
        preg_match($pattern, $first, $matches);
        $code = $matches[1];
        
        // Parse the remaining headers into an associative array
        $headers = array();
        foreach ($lines as $line) {
            list($k, $v) = explode(': ', $line, 2);
            $headers[strtolower($k)] = $v;
        }
        
        // If the response body is not a JSON encoded string
        // we'll return the entire response body
        if (!$body = json_decode($response)) {
            $body = $response;
        }
        
        return array('code' => $code, 'body' => $body, 'headers' => $headers);
    }
private function parse ( $ response ) { // Explode the response into headers and body parts (separated by double EOL) list ( $ headers , $ response ) = explode ( "\r\n\r\n" , $ response , 2 ) ; // Explode response headers $ lines = explode ( "\r\n" , $ headers ) ; // If the status code is 100, the API server must send a final response // We need to explode the response again to get the actual response if ( preg_match ( '#^HTTP/1.1 100#' , $ lines [ 0 ] ) ) { list ( $ headers , $ response ) = explode ( "\r\n\r\n" , $ response , 2 ) ; $ lines = explode ( "\r\n" , $ headers ) ; } // Get the HTTP response code from the first line $ first = array_shift ( $ lines ) ; $ pattern = '#^HTTP/1.1 ([0-9]{3})#' ; preg_match ( $ pattern , $ first , $ matches ) ; $ code = $ matches [ 1 ] ; // Parse the remaining headers into an associative array $ headers = array ( ) ; foreach ( $ lines as $ line ) { list ( $ k , $ v ) = explode ( ': ' , $ line , 2 ) ; $ headers [ strtolower ( $ k ) ] = $ v ; } // If the response body is not a JSON encoded string // we'll return the entire response body if ( ! $ body = json_decode ( $ response ) ) { $ body = $ response ; } return array ( 'code' => $ code , 'body' => $ body , 'headers' => $ headers ) ; }
Parse a cURL response
@param string $response
@return array
Parse a cURL response