Skip to main content
Drupal API
User account menu
  • Log in

Breadcrumb

  1. Drupal Core 11.1.x
  2. Header.php

class Header

Hierarchy

  • class \GuzzleHttp\Psr7\Header

Expanded class hierarchy of Header

31 string references to 'Header'
AssetResolver::getJsAssets in core/lib/Drupal/Core/Asset/AssetResolver.php
Returns the JavaScript assets for the current response's libraries.
block.block.claro_page_title.yml in core/themes/claro/config/optional/block.block.claro_page_title.yml
core/themes/claro/config/optional/block.block.claro_page_title.yml
block.block.claro_primary_local_tasks.yml in core/themes/claro/config/optional/block.block.claro_primary_local_tasks.yml
core/themes/claro/config/optional/block.block.claro_primary_local_tasks.yml
block.block.olivero_site_branding.yml in core/themes/olivero/config/optional/block.block.olivero_site_branding.yml
core/themes/olivero/config/optional/block.block.olivero_site_branding.yml
block.block.stark_branding.yml in core/profiles/minimal/config/install/block.block.stark_branding.yml
core/profiles/minimal/config/install/block.block.stark_branding.yml

... See full list

File

vendor/guzzlehttp/psr7/src/Header.php, line 7

Namespace

GuzzleHttp\Psr7
View source
final class Header {
    
    /**
     * Parse an array of header values containing ";" separated data into an
     * array of associative arrays representing the header key value pair data
     * of the header. When a parameter does not contain a value, but just
     * contains a key, this function will inject a key with a '' string value.
     *
     * @param string|array $header Header to parse into components.
     */
    public static function parse($header) : array {
        static $trimmed = "\"'  \n\t\r";
        $params = $matches = [];
        foreach ((array) $header as $value) {
            foreach (self::splitList($value) as $val) {
                $part = [];
                foreach (preg_split('/;(?=([^"]*"[^"]*")*[^"]*$)/', $val) ?: [] as $kvp) {
                    if (preg_match_all('/<[^>]+>|[^=]+/', $kvp, $matches)) {
                        $m = $matches[0];
                        if (isset($m[1])) {
                            $part[trim($m[0], $trimmed)] = trim($m[1], $trimmed);
                        }
                        else {
                            $part[] = trim($m[0], $trimmed);
                        }
                    }
                }
                if ($part) {
                    $params[] = $part;
                }
            }
        }
        return $params;
    }
    
    /**
     * Converts an array of header values that may contain comma separated
     * headers into an array of headers with no comma separated values.
     *
     * @param string|array $header Header to normalize.
     *
     * @deprecated Use self::splitList() instead.
     */
    public static function normalize($header) : array {
        $result = [];
        foreach ((array) $header as $value) {
            foreach (self::splitList($value) as $parsed) {
                $result[] = $parsed;
            }
        }
        return $result;
    }
    
    /**
     * Splits a HTTP header defined to contain a comma-separated list into
     * each individual value. Empty values will be removed.
     *
     * Example headers include 'accept', 'cache-control' and 'if-none-match'.
     *
     * This method must not be used to parse headers that are not defined as
     * a list, such as 'user-agent' or 'set-cookie'.
     *
     * @param string|string[] $values Header value as returned by MessageInterface::getHeader()
     *
     * @return string[]
     */
    public static function splitList($values) : array {
        if (!\is_array($values)) {
            $values = [
                $values,
            ];
        }
        $result = [];
        foreach ($values as $value) {
            if (!\is_string($value)) {
                throw new \TypeError('$header must either be a string or an array containing strings.');
            }
            $v = '';
            $isQuoted = false;
            $isEscaped = false;
            for ($i = 0, $max = \strlen($value); $i < $max; ++$i) {
                if ($isEscaped) {
                    $v .= $value[$i];
                    $isEscaped = false;
                    continue;
                }
                if (!$isQuoted && $value[$i] === ',') {
                    $v = \trim($v);
                    if ($v !== '') {
                        $result[] = $v;
                    }
                    $v = '';
                    continue;
                }
                if ($isQuoted && $value[$i] === '\\') {
                    $isEscaped = true;
                    $v .= $value[$i];
                    continue;
                }
                if ($value[$i] === '"') {
                    $isQuoted = !$isQuoted;
                    $v .= $value[$i];
                    continue;
                }
                $v .= $value[$i];
            }
            $v = \trim($v);
            if ($v !== '') {
                $result[] = $v;
            }
        }
        return $result;
    }

}

Members

Title Sort descending Deprecated Modifiers Object type Summary
Header::normalize Deprecated public static function Converts an array of header values that may contain comma separated
headers into an array of headers with no comma separated values.
Header::parse public static function Parse an array of header values containing &quot;;&quot; separated data into an
array of associative arrays representing the header key value pair data
of the header. When a parameter does not contain a value, but just
contains a key, this function…
Header::splitList public static function Splits a HTTP header defined to contain a comma-separated list into
each individual value. Empty values will be removed.

API Navigation

  • Drupal Core 11.1.x
  • Topics
  • Classes
  • Functions
  • Constants
  • Globals
  • Files
  • Namespaces
  • Deprecated
  • Services
RSS feed
Powered by Drupal