/** * Returns the header collection. * The header collection contains the HTTP headers associated with HTTP message. * @return HeaderCollection the header collection */ public function getHeaders() { if (!is_object($this->_headers)) { $headerCollection = new HeaderCollection(); if (is_array($this->_headers)) { foreach ($this->_headers as $name => $value) { if (is_int($name)) { // parse raw header : $rawHeader = $value; if (($separatorPos = strpos($rawHeader, ':')) !== false) { $name = strtolower(trim(substr($rawHeader, 0, $separatorPos))); $value = trim(substr($rawHeader, $separatorPos + 1)); $headerCollection->add($name, $value); } elseif (strpos($rawHeader, 'HTTP/') === 0) { $parts = explode(' ', $rawHeader, 3); $headerCollection->add('http-code', $parts[1]); } else { $headerCollection->add('raw', $rawHeader); } } else { $headerCollection->set($name, $value); } } } $this->_headers = $headerCollection; } return $this->_headers; }