PluginProbe ʕ •ᴥ•ʔ
Yoast SEO – Advanced SEO with real-time guidance and built-in AI / 25.9
Yoast SEO – Advanced SEO with real-time guidance and built-in AI v25.9
27.7 27.6 27.5 trunk 18.0 18.1 18.2 18.3 18.4 18.4.1 18.5 18.5.1 18.6 18.7 18.8 18.9 19.0 19.1 19.10 19.11 19.12 19.13 19.14 19.2 19.3 19.4 19.5 19.5.1 19.6 19.6.1 19.7 19.7.1 19.7.2 19.8 19.9 20.0 20.1 20.10 20.11 20.12 20.13 20.2 20.2.1 20.3 20.4 20.5 20.6 20.7 20.8 20.9 21.0 21.1 21.2 21.3 21.4 21.5 21.6 21.7 21.8 21.8.1 21.9 21.9.1 22.0 22.1 22.2 22.3 22.4 22.5 22.6 22.7 22.8 22.9 23.0 23.1 23.2 23.3 23.4 23.5 23.6 23.7 23.8 23.9 24.0 24.1 24.2 24.3 24.4 24.5 24.6 24.7 24.8 24.8.1 24.9 25.0 25.1 25.2 25.3 25.3.1 25.4 25.5 25.6 25.7 25.8 25.9 26.0 26.1 26.1.1 26.2 26.3 26.4 26.5 26.6 26.7 26.8 26.9 27.0 27.1 27.1.1 27.2 27.3 27.4
wordpress-seo / vendor_prefixed / guzzlehttp / psr7 / src / Header.php
wordpress-seo / vendor_prefixed / guzzlehttp / psr7 / src Last commit date
Exception 2 years ago AppendStream.php 2 years ago BufferStream.php 2 years ago CachingStream.php 2 years ago DroppingStream.php 2 years ago FnStream.php 2 years ago Header.php 2 years ago HttpFactory.php 2 years ago InflateStream.php 2 years ago LazyOpenStream.php 2 years ago LimitStream.php 2 years ago Message.php 2 years ago MessageTrait.php 2 years ago MimeType.php 2 years ago MultipartStream.php 2 years ago NoSeekStream.php 2 years ago PumpStream.php 2 years ago Query.php 2 years ago Request.php 2 years ago Response.php 2 years ago Rfc7230.php 2 years ago ServerRequest.php 2 years ago Stream.php 2 years ago StreamDecoratorTrait.php 2 years ago StreamWrapper.php 2 years ago UploadedFile.php 2 years ago Uri.php 2 years ago UriComparator.php 2 years ago UriNormalizer.php 2 years ago UriResolver.php 2 years ago Utils.php 2 years ago
Header.php
118 lines
1 <?php
2
3 declare (strict_types=1);
4 namespace YoastSEO_Vendor\GuzzleHttp\Psr7;
5
6 final class Header
7 {
8 /**
9 * Parse an array of header values containing ";" separated data into an
10 * array of associative arrays representing the header key value pair data
11 * of the header. When a parameter does not contain a value, but just
12 * contains a key, this function will inject a key with a '' string value.
13 *
14 * @param string|array $header Header to parse into components.
15 */
16 public static function parse($header) : array
17 {
18 static $trimmed = "\"' \n\t\r";
19 $params = $matches = [];
20 foreach ((array) $header as $value) {
21 foreach (self::splitList($value) as $val) {
22 $part = [];
23 foreach (\preg_split('/;(?=([^"]*"[^"]*")*[^"]*$)/', $val) ?: [] as $kvp) {
24 if (\preg_match_all('/<[^>]+>|[^=]+/', $kvp, $matches)) {
25 $m = $matches[0];
26 if (isset($m[1])) {
27 $part[\trim($m[0], $trimmed)] = \trim($m[1], $trimmed);
28 } else {
29 $part[] = \trim($m[0], $trimmed);
30 }
31 }
32 }
33 if ($part) {
34 $params[] = $part;
35 }
36 }
37 }
38 return $params;
39 }
40 /**
41 * Converts an array of header values that may contain comma separated
42 * headers into an array of headers with no comma separated values.
43 *
44 * @param string|array $header Header to normalize.
45 *
46 * @deprecated Use self::splitList() instead.
47 */
48 public static function normalize($header) : array
49 {
50 $result = [];
51 foreach ((array) $header as $value) {
52 foreach (self::splitList($value) as $parsed) {
53 $result[] = $parsed;
54 }
55 }
56 return $result;
57 }
58 /**
59 * Splits a HTTP header defined to contain a comma-separated list into
60 * each individual value. Empty values will be removed.
61 *
62 * Example headers include 'accept', 'cache-control' and 'if-none-match'.
63 *
64 * This method must not be used to parse headers that are not defined as
65 * a list, such as 'user-agent' or 'set-cookie'.
66 *
67 * @param string|string[] $values Header value as returned by MessageInterface::getHeader()
68 *
69 * @return string[]
70 */
71 public static function splitList($values) : array
72 {
73 if (!\is_array($values)) {
74 $values = [$values];
75 }
76 $result = [];
77 foreach ($values as $value) {
78 if (!\is_string($value)) {
79 throw new \TypeError('$header must either be a string or an array containing strings.');
80 }
81 $v = '';
82 $isQuoted = \false;
83 $isEscaped = \false;
84 for ($i = 0, $max = \strlen($value); $i < $max; ++$i) {
85 if ($isEscaped) {
86 $v .= $value[$i];
87 $isEscaped = \false;
88 continue;
89 }
90 if (!$isQuoted && $value[$i] === ',') {
91 $v = \trim($v);
92 if ($v !== '') {
93 $result[] = $v;
94 }
95 $v = '';
96 continue;
97 }
98 if ($isQuoted && $value[$i] === '\\') {
99 $isEscaped = \true;
100 $v .= $value[$i];
101 continue;
102 }
103 if ($value[$i] === '"') {
104 $isQuoted = !$isQuoted;
105 $v .= $value[$i];
106 continue;
107 }
108 $v .= $value[$i];
109 }
110 $v = \trim($v);
111 if ($v !== '') {
112 $result[] = $v;
113 }
114 }
115 return $result;
116 }
117 }
118