get_headers()
get_headers() — Fetches all the headers sent by the server in response to an HTTP request.
Built-in function of PHP 8.5. The manual lists it as available in PHP 5, PHP 7, PHP 8. This page is the reference card: signature, parameters and return value, plus the changelog and the example the manual provides.
What it does
get_headers() returns an array with the headers sent by the server in response to a HTTP request.
Signature
get_headers(string $url, bool $associative = false, ?resource $context = null): array|false
Parameters
| Parameter | Type | What it takes |
|---|---|---|
| $url | string | The target URL. |
| $associative | bool | If the optional associative parameter is set to true, get_headers() parses the response and sets the array's keys. |
| $context | ?resource | A valid context resource created with stream_context_create(), or null to use the default context. |
Return value
Returns an indexed or associative array with the headers, or false on failure.
Example
A runnable snippet:
$url = 'http://www.example.com'; print_r(get_headers($url)); print_r(get_headers($url, true));
Output:
Array ( [0] => HTTP/1.1 200 OK [1] => Date: Sat, 29 May 2004 12:28:13 GMT [2] => Server: Apache/1.3.27 (Unix) (Red-Hat/Linux) [3] => Last-Modified: Wed, 08 Jan 2003 23:11:55 GMT [4] => ETag: "3f80f-1b6-3e1cb03b" [5] => Accept-Ranges: bytes [6] => Content-Length: 438 [7] => Connection: close [8] => Content-Type: text/html ) Array ( [0] => HTTP/1.1 200 OK [Date] => Sat, 29 May 2004 12:28:14 GMT [Server] => Apache/1.3.27 (Unix) (Red-Hat/Linux) [Last-Modified] => Wed, 08 Jan 2003 23:11:55 GMT [ETag] => "3f80f-1b6-3e1cb03b" [Accept-Ranges] => bytes [Content-Length] => 438 [Connection] => close [Content-Type] => text/html )
Changelog
| Version | Change |
|---|---|
| 8.0.0 | The associative has been changed from int to bool. |
| 7.1.0 | The context parameter was added. |
All PHP 8.5 built-in functions
Reference card built from the PHP manual page get_headers() (PHP documentation, CC BY 3.0). The page is generated from the manual, so the wording of the parameter and return value text follows php.net.