Browse code

added appinfo/info.xml appinfo/signature.json CHANGELOG.txt lib/AppInfo/Application.php css/style.css providers/Plivo

DoubleBastionAdmin authored on 05/11/2025 13:35:09
Showing 1 changed files
1 1
new file mode 100644
... ...
@@ -0,0 +1,134 @@
1
+<?php
2
+
3
+declare(strict_types=1);
4
+
5
+namespace GuzzleHttp\Psr7;
6
+
7
+final class Header
8
+{
9
+    /**
10
+     * Parse an array of header values containing ";" separated data into an
11
+     * array of associative arrays representing the header key value pair data
12
+     * of the header. When a parameter does not contain a value, but just
13
+     * contains a key, this function will inject a key with a '' string value.
14
+     *
15
+     * @param string|array $header Header to parse into components.
16
+     */
17
+    public static function parse($header): array
18
+    {
19
+        static $trimmed = "\"'  \n\t\r";
20
+        $params = $matches = [];
21
+
22
+        foreach ((array) $header as $value) {
23
+            foreach (self::splitList($value) as $val) {
24
+                $part = [];
25
+                foreach (preg_split('/;(?=([^"]*"[^"]*")*[^"]*$)/', $val) ?: [] as $kvp) {
26
+                    if (preg_match_all('/<[^>]+>|[^=]+/', $kvp, $matches)) {
27
+                        $m = $matches[0];
28
+                        if (isset($m[1])) {
29
+                            $part[trim($m[0], $trimmed)] = trim($m[1], $trimmed);
30
+                        } else {
31
+                            $part[] = trim($m[0], $trimmed);
32
+                        }
33
+                    }
34
+                }
35
+                if ($part) {
36
+                    $params[] = $part;
37
+                }
38
+            }
39
+        }
40
+
41
+        return $params;
42
+    }
43
+
44
+    /**
45
+     * Converts an array of header values that may contain comma separated
46
+     * headers into an array of headers with no comma separated values.
47
+     *
48
+     * @param string|array $header Header to normalize.
49
+     *
50
+     * @deprecated Use self::splitList() instead.
51
+     */
52
+    public static function normalize($header): array
53
+    {
54
+        $result = [];
55
+        foreach ((array) $header as $value) {
56
+            foreach (self::splitList($value) as $parsed) {
57
+                $result[] = $parsed;
58
+            }
59
+        }
60
+
61
+        return $result;
62
+    }
63
+
64
+    /**
65
+     * Splits a HTTP header defined to contain a comma-separated list into
66
+     * each individual value. Empty values will be removed.
67
+     *
68
+     * Example headers include 'accept', 'cache-control' and 'if-none-match'.
69
+     *
70
+     * This method must not be used to parse headers that are not defined as
71
+     * a list, such as 'user-agent' or 'set-cookie'.
72
+     *
73
+     * @param string|string[] $values Header value as returned by MessageInterface::getHeader()
74
+     *
75
+     * @return string[]
76
+     */
77
+    public static function splitList($values): array
78
+    {
79
+        if (!\is_array($values)) {
80
+            $values = [$values];
81
+        }
82
+
83
+        $result = [];
84
+        foreach ($values as $value) {
85
+            if (!\is_string($value)) {
86
+                throw new \TypeError('$header must either be a string or an array containing strings.');
87
+            }
88
+
89
+            $v = '';
90
+            $isQuoted = false;
91
+            $isEscaped = false;
92
+            for ($i = 0, $max = \strlen($value); $i < $max; ++$i) {
93
+                if ($isEscaped) {
94
+                    $v .= $value[$i];
95
+                    $isEscaped = false;
96
+
97
+                    continue;
98
+                }
99
+
100
+                if (!$isQuoted && $value[$i] === ',') {
101
+                    $v = \trim($v);
102
+                    if ($v !== '') {
103
+                        $result[] = $v;
104
+                    }
105
+
106
+                    $v = '';
107
+                    continue;
108
+                }
109
+
110
+                if ($isQuoted && $value[$i] === '\\') {
111
+                    $isEscaped = true;
112
+                    $v .= $value[$i];
113
+
114
+                    continue;
115
+                }
116
+                if ($value[$i] === '"') {
117
+                    $isQuoted = !$isQuoted;
118
+                    $v .= $value[$i];
119
+
120
+                    continue;
121
+                }
122
+
123
+                $v .= $value[$i];
124
+            }
125
+
126
+            $v = \trim($v);
127
+            if ($v !== '') {
128
+                $result[] = $v;
129
+            }
130
+        }
131
+
132
+        return $result;
133
+    }
134
+}
Browse code

removed appinfo/info.xml appinfo/signature.json CHANGELOG.txt lib/AppInfo/Application.php css/style.css providers/Plivo

DoubleBastionAdmin authored on 05/11/2025 13:12:22
Showing 1 changed files
1 1
deleted file mode 100644
... ...
@@ -1,71 +0,0 @@
1
-<?php
2
-
3
-namespace GuzzleHttp\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
-}
Browse code

Added README.md appinfo/info.xml appinfo/signature.json lib/Controller/AuthorApiController.php and the providers directory

DoubleBastionAdmin authored on 20/08/2022 16:33:00
Showing 1 changed files
1 1
new file mode 100644
... ...
@@ -0,0 +1,71 @@
1
+<?php
2
+
3
+namespace GuzzleHttp\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
+}