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 a HTTP Content-Disposition field-value.

Details

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

Splits an HTTP header by one or more separators.

Example:

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

Parameters

string $header HTTP header value
string $separators List of characters to split on, ordered by precedence, e.g. ",", ";=", or ",;="

Return Value

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

static array 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(array(array("foo", "abc"), array("bar")))
// => array("foo" => "abc", "bar" => true)

Parameters

array $parts

Return Value

array

static string 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(array("foo" => "abc", "bar" => true, "baz" => "a b c"), ",")
// => 'foo=abc, bar, baz="a b c"'

Parameters

array $assoc
string $separator

Return Value

string

static string 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

static string 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 verbatimly.

Parameters

string $s

Return Value

string

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

Generates a 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 A string suitable for use as a Content-Disposition field-value

Exceptions

InvalidArgumentException

See also