header[$name] = $value; } function exists($key) { return isset($this->header[$key]); } function getHeader($key) { return $this->header[$key]; } function inValue($header, $value) { return $this->exists($header) && strpos(strtolower($this->getHeader($header)), $value) !== false; } function setFirstLine($line) { $this->firstLine = $line; } function getFirstLine() { return $this->firstLine; } function parseResponse($response) { $firstBreak = strpos($response, "\r\n"); if (!$firstBreak) { return false; } $this->setFirstLine(substr($response, 0, $firstBreak)); $response = substr($response, $firstBreak + 2); if (preg_match_all('/(.+) *?: *?(.+) *?\r\n/U', $response, $matches)) { $keys = $matches[1]; $values = $matches[2]; for ($i = 0; $i < count($keys); $i++) { $this->addHeader(strtolower($keys[$i]), $values[$i]); } } return true; } function makeRequest() { $request = $this->firstLine."\r\n"; foreach ($this->header as $name => $value) { $request .= $name.': '.$value."\r\n"; } return $request."\r\n"; } } ?>