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.
Auf den Verzeichnisnamen klicken, dies zeigt nur das Verzeichnis mit Inhalt an

(Beispiel Datei-Icons)

Auf das Icon klicken um den Quellcode anzuzeigen

Header.php

Zuletzt modifiziert: 02.04.2025, 15:03 - Dateigröße: 2.13 KiB


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