You are here

function parse_header in Lockr 7.3

Parse an array of header values containing ";" separated data into an array of associative arrays representing the header key value pair data of the header. When a parameter does not contain a value, but just contains a key, this function will inject a key with a '' string value.

Parameters

string|array $header Header to parse into components.:

Return value

array Returns the parsed header values.

File

vendor/guzzlehttp/psr7/src/functions.php, line 129

Namespace

GuzzleHttp\Psr7

Code

function parse_header($header) {
  static $trimmed = "\"'  \n\t\r";
  $params = $matches = [];
  foreach (normalize_header($header) as $val) {
    $part = [];
    foreach (preg_split('/;(?=([^"]*"[^"]*")*[^"]*$)/', $val) as $kvp) {
      if (preg_match_all('/<[^>]+>|[^=]+/', $kvp, $matches)) {
        $m = $matches[0];
        if (isset($m[1])) {
          $part[trim($m[0], $trimmed)] = trim($m[1], $trimmed);
        }
        else {
          $part[] = trim($m[0], $trimmed);
        }
      }
    }
    if ($part) {
      $params[] = $part;
    }
  }
  return $params;
}