/** * Replaces a header in the collection, either in "Header: Value" format * or an {@link HeaderField} object. * @chainable */ function replace($header) { if (is_string($header)) { $header = HeaderField::fromString($header); } return $this->remove($header->getName())->add($header); }
/** * Parses a response into headers and a body */ private function _buildResponse($response) { $sections = explode("\r\n\r\n", $response, 2); $body = isset($sections[1]) ? $sections[1] : NULL; $headers = array(); $headerlines = explode("\n", $sections[0]); // process status list($http, $code, $message) = explode(' ', $headerlines[0], 3); // process headers foreach (array_slice($headerlines, 1) as $headerline) { $headers[] = HeaderField::fromString($headerline); } $response = new Response($code, $headers, $body); return $response; }