Overview
KB
Technical FAQ
PHP Manual
CSS2 Manual
HTML Manual
JS Guide
JS Reference
PhpDock Manual
Nu-Coder Manual
PhpExpress Manual
PHP Joomla
Development
Learn PHP
 
<base64_encodeget_meta_tags>
^URL FunctionsLast updated: Mon, 26 Oct 2026

get_headers

(PHP 5, PHP 7, PHP 8)

get_headers — Fetches all the headers sent by the server in response to an HTTP request

Description

function get_headers(string $url, bool $associative = false, ?resource $context = null): array|false

get_headers() returns an array with the headers sent by the server in response to a HTTP request.

Parameters

url

The target URL.

associative

If the optional associative parameter is set to true, get_headers() parses the response and sets the array's keys.

context

A valid context resource created with stream_context_create(), or null to use the default context.

Return Values

Returns an indexed or associative array with the headers, or false on failure.

Changelog

Version Description
8.0.0 The associative has been changed from int to bool.
7.1.0 The context parameter was added.

Examples

Example #1 get_headers() example

<?php
$url = 'http://www.example.com';

print_r(get_headers($url));

print_r(get_headers($url, true));
?>

The above example will output something similar to:

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
)

Example #2 get_headers() using HEAD example

<?php
// By default get_headers uses a GET request to fetch the headers. If you
// want to send a HEAD request instead, you can do so using a stream context:
$context = stream_context_create(
    [
        'http' => array(
            'method' => 'HEAD'
        )
    ]
);
$headers = get_headers('http://example.com', false, $context);
?>

See Also


<base64_encodeget_meta_tags>
^URL FunctionsLast updated: Mon, 26 Oct 2026