Updated Drupal to 8.6. This goes with the following updates because it's possible...
[yaffs-website] / vendor / zendframework / zend-diactoros / src / functions / parse_cookie_header.php
diff --git a/vendor/zendframework/zend-diactoros/src/functions/parse_cookie_header.php b/vendor/zendframework/zend-diactoros/src/functions/parse_cookie_header.php
new file mode 100644 (file)
index 0000000..b3b5651
--- /dev/null
@@ -0,0 +1,41 @@
+<?php
+/**
+ * @see       https://github.com/zendframework/zend-diactoros for the canonical source repository
+ * @copyright Copyright (c) 2018 Zend Technologies USA Inc. (https://www.zend.com)
+ * @license   https://github.com/zendframework/zend-diactoros/blob/master/LICENSE.md New BSD License
+ */
+
+namespace Zend\Diactoros;
+
+use function preg_match_all;
+use function urldecode;
+
+/**
+ * Parse a cookie header according to RFC 6265.
+ *
+ * PHP will replace special characters in cookie names, which results in other cookies not being available due to
+ * overwriting. Thus, the server request should take the cookies from the request header instead.
+ *
+ * @param string $cookieHeader A string cookie header value.
+ * @return array key/value cookie pairs.
+ */
+function parseCookieHeader($cookieHeader)
+{
+    preg_match_all('(
+        (?:^\\n?[ \t]*|;[ ])
+        (?P<name>[!#$%&\'*+-.0-9A-Z^_`a-z|~]+)
+        =
+        (?P<DQUOTE>"?)
+            (?P<value>[\x21\x23-\x2b\x2d-\x3a\x3c-\x5b\x5d-\x7e]*)
+        (?P=DQUOTE)
+        (?=\\n?[ \t]*$|;[ ])
+    )x', $cookieHeader, $matches, PREG_SET_ORDER);
+
+    $cookies = [];
+
+    foreach ($matches as $match) {
+        $cookies[$match['name']] = urldecode($match['value']);
+    }
+
+    return $cookies;
+}