Verzeichnisstruktur phpBB-3.3.15
- Veröffentlicht
- 28.08.2024
So funktioniert es
|
Auf das letzte Element klicken. Dies geht jeweils ein Schritt zurück |
Auf das Icon klicken, dies öffnet das Verzeichnis. Nochmal klicken schließt das Verzeichnis. |
|
(Beispiel Datei-Icons)
|
Auf das Icon klicken um den Quellcode anzuzeigen |
Header.php
01 <?php
02
03 namespace GuzzleHttp\Psr7;
04
05 final class Header
06 {
07 /**
08 * Parse an array of header values containing ";" separated data into an
09 * 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