headers_list

(PHP 5, PHP 7, PHP 8)

headers_listRetourne la liste des en-têtes de réponse du script courant

Description

headers_list(): array

headers_list() retourne un tableau avec la liste des en-têtes qui seront transmis au navigateur. Pour déterminer si ces en-têtes ont déjà été envoyés ou pas, utilisez la fonction headers_sent().

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne un tableau d'en-têtes indexé numériquement.

Exemples

Exemple #1 Exemple avec headers_list()

<?php

/* setcookie() va ajouter un en-tête */
setcookie('foo', 'bar');

/* Définit un en-tête de réponse
Il sera ignoré par la majorité des navigateurs */
header("Example-Test: foo");

/* Spécification de la réponse en texte simple */
header('Content-Type: text/plain; charset=UTF-8');

/* Quels sont les en-têtes qui vont être envoyés ? */
var_dump(headers_list());

?>

Résultat de l'exemple ci-dessus est similaire à :

array(4) {
  [0]=>
  string(19) "Set-Cookie: foo=bar"
  [1]=>
  string(17) "Example-Test: foo"
  [2]=>
  string(39) "Content-Type: text/plain; charset=UTF-8"
}

Notes

Note:

Les en-têtes ne seront accessibles et s'afficheront que lorsqu'un SAPI qui les supporte sera utilisé.

Voir aussi

add a note add a note

User Contributed Notes 3 notes

up
19
Anonymous
12 years ago
note that it does not return the status header

<?php

header
('HTTP/1.1 301 Moved Permanently', true, 301);

header('foo: bar');
header('a: b');
header('colon less example');

print_r(headers_list());
?>

Array
(
    [0] => X-Powered-By: PHP/5.4.7
    [1] => foo: bar
    [2] => a: b
)
up
9
arnold at jasny dot net
7 years ago
This function won't work for when you're running PHP from the command line. If will always return an empty array. This can be an issue when testing your project using PHPUnit or Codeception.

To solve this, install the xdebug extension and use `xdebug_get_headers` when on the cli.

<?php
$headers
= php_sapi_name() === 'cli' ? xdebug_get_headers() : headers_list();
?>
up
0
SOLO2
12 years ago
Function to check if a particular header has been added to the list:

<?php

function header_sent($header) {
   
$headers = headers_list();
   
$header = trim($header,': ');
   
$result = false;

    foreach (
$headers as $hdr) {
        if (
stripos($hdr, $header) !== false) {
           
$result = true;
        }
    }

    return
$result;
}

?>
To Top