class HeaderUtils

HTTP header utility functions.

Constants

DISPOSITION_ATTACHMENT

DISPOSITION_INLINE

Methods

static array
split(string$header,string$separators)

Splits an HTTP header by one or more separators.

static array
combine(array$parts)

Combines an array of arrays into one associative array.

static string
toString(array$assoc,string$separator)

Joins an associative array into a string for use in an HTTP header.

static string
quote(string$s)

Encodes a string as a quoted string, if necessary.

static string
unquote(string$s)

Decodes a quoted string.

static string
makeDisposition(string$disposition,string$filename,string$filenameFallback ='')

Generates an HTTP Content-Disposition field-value.

static array
parseQuery(string$query,bool$ignoreBrackets =false,string$separator ='&')

Like parse_str(), but preserves dots in variable names.

Details

staticarray split(string$header,string$separators)

Splits an HTTP header by one or more separators.

Example:

HeaderUtils::split('da, en-gb;q=0.8', ',;')
// => ['da'], ['en-gb', 'q=0.8']]

Parameters

string $header
string $separators

Return Value

array Nested array with as many levels as there are characters in $separators

staticarray combine(array$parts)

Combines an array of arrays into one associative array.

Each of the nested arrays should have one or two elements. The first value will be used as the keys in the associative array, and the second will be used as the values, or true if the nested array only contains one element. Array keys are lowercased.

Example:

HeaderUtils::combine([['foo', 'abc'], ['bar']])
// => ['foo' => 'abc', 'bar' => true]

Parameters

array $parts

Return Value

array

staticstring toString(array$assoc,string$separator)

Joins an associative array into a string for use in an HTTP header.

The key and value of each entry are joined with '=', and all entries are joined with the specified separator and an additional space (for readability). Values are quoted if necessary.

Example:

HeaderUtils::toString(['foo' => 'abc', 'bar' => true, 'baz' => 'a b c'], ',')
// => 'foo=abc, bar, baz="a b c"'

Parameters

array $assoc
string $separator

Return Value

string

staticstring quote(string$s)

Encodes a string as a quoted string, if necessary.

If a string contains characters not allowed by the "token" construct in the HTTP specification, it is backslash-escaped and enclosed in quotes to match the "quoted-string" construct.

Parameters

string $s

Return Value

string

staticstring unquote(string$s)

Decodes a quoted string.

If passed an unquoted string that matches the "token" construct (as defined in the HTTP specification), it is passed through verbatim.

Parameters

string $s

Return Value

string

staticstring makeDisposition(string$disposition,string$filename,string$filenameFallback ='')

Generates an HTTP Content-Disposition field-value.

Parameters

string $disposition One of "inline" or "attachment"
string $filename A unicode string
string $filenameFallback A string containing only ASCII characters that is semantically equivalent to $filename. If the filename is already ASCII, it can be omitted, or just copied from $filename

Return Value

string

Exceptions

InvalidArgumentException

See also

RFC 6266

staticarray parseQuery(string$query,bool$ignoreBrackets =false,string$separator ='&')

Like parse_str(), but preserves dots in variable names.

Parameters

string $query
bool $ignoreBrackets
string $separator

Return Value

array