/** * Normalizes the headers * * @param string|string[] $headers * @param boolean $associative TRUE if the headers should be an associative array else FALSE. * * @return string[] */ public static function normalize($headers, $associative = true) { $normalizedHeaders = []; if (!$associative) { $headers = self::normalize($headers); } foreach (HeaderParser::parse($headers) as $name => $value) { if (strpos($value, 'HTTP/') === 0) { continue; } list($name, $value) = explode(':', $value, 2); $name = self::normalizeHeaderName($name); $value = self::normalizeHeaderValue($value); if (!$associative) { $normalizedHeaders[] = $name . ': ' . $value; } else { $normalizedHeaders[$name] = isset($normalizedHeaders[$name]) ? $normalizedHeaders[$name] . ', ' . $value : $value; } } return $normalizedHeaders; }
/** * Extracts the status line * * @param string|string[] $headers * * @return string */ public static function extract($headers) { $headers = HeaderParser::parse($headers); return $headers[0]; }