private function parseHeaders($headerString)
{
preg_match_all("/^([-a-zA-Z0-9_]+): (.+)\$/m", $headerString, $matches, PREG_SET_ORDER);
$headers = array();
foreach ($matches as $m) {
$header = $m[1];
$value = $m[2];
//check for duplicate headers and group into arrays
//necessary for Set-Cookie in particular
if (array_key_exists($header, $headers)) {
if (is_array($headers[$header])) {
$headers[$header][] = $value;
} else {
// Convert to array of Header values
$currentValue = $headers[$header];
$headers[$header] = array($currentValue, $value);
}
} else {
$headers[$header] = $value;
}
}
return $headers;
}