<?php declare(strict_types=1); namespace GuzzleHttp\Psr7; final class Header { /** * 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. * * @param string|array $header Header to parse into components. */ public static function parse($header): array { static $trimmed = "\"' \n\t\r"; $params = $matches = []; foreach (self::normalize($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; } /** * Converts an array of header values that may contain comma separated * headers into an array of headers with no comma separated values. * * @param string|array $header Header to normalize. */ public static function normalize($header): array { if (!is_array($header)) { return array_map('trim', explode(',', $header)); } $result = []; foreach ($header as $value) { foreach ((array) $value as $v) { if (strpos($v, ',') === false) { $result[] = $v; continue; } foreach (preg_split('/,(?=([^"]*"[^"]*")*[^"]*$)/', $v) as $vv) { $result[] = trim($vv); } } } return $result; } }
Name | Type | Size | Permission | Actions |
---|---|---|---|---|
Exception | Folder | 2755 |
|
|
AppendStream.php | File | 5.84 KB | 0755 |
|
BufferStream.php | File | 3.17 KB | 0755 |
|
CachingStream.php | File | 4.42 KB | 0755 |
|
DroppingStream.php | File | 1.12 KB | 0755 |
|
FnStream.php | File | 4.38 KB | 0755 |
|
Header.php | File | 2.04 KB | 0755 |
|
HttpFactory.php | File | 3.02 KB | 0755 |
|
InflateStream.php | File | 1.3 KB | 0755 |
|
LazyOpenStream.php | File | 899 B | 0755 |
|
LimitStream.php | File | 4.14 KB | 0755 |
|
Message.php | File | 8.01 KB | 0755 |
|
MessageTrait.php | File | 6.46 KB | 0755 |
|
MimeType.php | File | 4.2 KB | 0755 |
|
MultipartStream.php | File | 4.67 KB | 0755 |
|
NoSeekStream.php | File | 470 B | 0755 |
|
PumpStream.php | File | 4.5 KB | 0755 |
|
Query.php | File | 3.55 KB | 0755 |
|
Request.php | File | 3.81 KB | 0755 |
|
Response.php | File | 4.79 KB | 0755 |
|
Rfc7230.php | File | 665 B | 0755 |
|
ServerRequest.php | File | 9.36 KB | 0755 |
|
Stream.php | File | 7.12 KB | 0755 |
|
StreamDecoratorTrait.php | File | 3.28 KB | 0755 |
|
StreamWrapper.php | File | 4.01 KB | 0755 |
|
UploadedFile.php | File | 4.75 KB | 0755 |
|
Uri.php | File | 21.33 KB | 0755 |
|
UriNormalizer.php | File | 8.22 KB | 0755 |
|
UriResolver.php | File | 8.36 KB | 0755 |
|
Utils.php | File | 13.91 KB | 0755 |
|