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

Breadcrumb

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

function Header::splitList

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'.

Parameters

string|string[] $values Header value as returned by MessageInterface::getHeader():

Return value

string[]

2 calls to Header::splitList()
Header::normalize in vendor/guzzlehttp/psr7/src/Header.php
Converts an array of header values that may contain comma separated headers into an array of headers with no comma separated values.
Header::parse in vendor/guzzlehttp/psr7/src/Header.php
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…

File

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

Class

Header

Namespace

GuzzleHttp\Psr7

Code

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;
}

API Navigation

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