PluginProbe ʕ •ᴥ•ʔ
Booking for Appointments and Events Calendar – Amelia / 1.2.20
Booking for Appointments and Events Calendar – Amelia v1.2.20
2.4.4 2.4.3 2.4.2 2.4.1 2.4 trunk 1.2.1 1.2.10 1.2.11 1.2.12 1.2.13 1.2.14 1.2.15 1.2.16 1.2.17 1.2.18 1.2.19 1.2.2 1.2.20 1.2.21 1.2.22 1.2.23 1.2.24 1.2.25 1.2.26 1.2.27 1.2.28 1.2.29 1.2.3 1.2.30 1.2.31 1.2.32 1.2.33 1.2.34 1.2.35 1.2.36 1.2.37 1.2.38 1.2.4 1.2.5 1.2.6 1.2.7 1.2.8 1.2.9 2.0 2.0.1 2.0.2 2.1 2.1.1 2.1.2 2.1.3 2.2 2.2.1 2.3
ameliabooking / vendor / guzzlehttp / psr7 / src / Header.php
ameliabooking / vendor / guzzlehttp / psr7 / src Last commit date
AppendStream.php 3 years ago BufferStream.php 3 years ago CachingStream.php 3 years ago DroppingStream.php 3 years ago FnStream.php 3 years ago Header.php 5 years ago InflateStream.php 3 years ago LazyOpenStream.php 3 years ago LimitStream.php 3 years ago Message.php 3 years ago MessageTrait.php 2 years ago MimeType.php 5 years ago MultipartStream.php 3 years ago NoSeekStream.php 3 years ago PumpStream.php 3 years ago Query.php 4 years ago Request.php 3 years ago Response.php 3 years ago Rfc7230.php 4 years ago ServerRequest.php 3 years ago Stream.php 3 years ago StreamDecoratorTrait.php 3 years ago StreamWrapper.php 3 years ago UploadedFile.php 3 years ago Uri.php 3 years ago UriComparator.php 2 years ago UriNormalizer.php 3 years ago UriResolver.php 3 years ago Utils.php 3 years ago functions.php 3 years ago functions_include.php 5 years ago
Header.php
72 lines
1 <?php
2
3 namespace AmeliaGuzzleHttp\Psr7;
4
5 final class Header
6 {
7 /**
8 * Parse an array of header values containing ";" separated data into an
9 * array of associative arrays representing the header key value pair data
10 * of the header. When a parameter does not contain a value, but just
11 * contains a key, this function will inject a key with a '' string value.
12 *
13 * @param string|array $header Header to parse into components.
14 *
15 * @return array Returns the parsed header values.
16 */
17 public static function parse($header)
18 {
19 static $trimmed = "\"' \n\t\r";
20 $params = $matches = [];
21
22 foreach (self::normalize($header) as $val) {
23 $part = [];
24 foreach (preg_split('/;(?=([^"]*"[^"]*")*[^"]*$)/', $val) as $kvp) {
25 if (preg_match_all('/<[^>]+>|[^=]+/', $kvp, $matches)) {
26 $m = $matches[0];
27 if (isset($m[1])) {
28 $part[trim($m[0], $trimmed)] = trim($m[1], $trimmed);
29 } else {
30 $part[] = trim($m[0], $trimmed);
31 }
32 }
33 }
34 if ($part) {
35 $params[] = $part;
36 }
37 }
38
39 return $params;
40 }
41
42 /**
43 * Converts an array of header values that may contain comma separated
44 * headers into an array of headers with no comma separated values.
45 *
46 * @param string|array $header Header to normalize.
47 *
48 * @return array Returns the normalized header field values.
49 */
50 public static function normalize($header)
51 {
52 if (!is_array($header)) {
53 return array_map('trim', explode(',', $header));
54 }
55
56 $result = [];
57 foreach ($header as $value) {
58 foreach ((array) $value as $v) {
59 if (strpos($v, ',') === false) {
60 $result[] = $v;
61 continue;
62 }
63 foreach (preg_split('/,(?=([^"]*"[^"]*")*[^"]*$)/', $v) as $vv) {
64 $result[] = trim($vv);
65 }
66 }
67 }
68
69 return $result;
70 }
71 }
72