(PHP 4, PHP 5, PHP 7, PHP 8)
headers_sent — Indique si les en-têtes HTTP ont déjà été envoyés
&$filename
= null
, int &$line
= null
): boolVérifie si les en-têtes HTTP ont déjà été envoyés.
Vous ne pouvez plus envoyer d'en-têtes avec la fonction header() une fois que le bloc d'en-tête a été fermé. En utilisant cette fonction, vous pouvez au moins éviter de voir s'afficher les erreurs HTTP reliées. Une autre option consiste à utiliser le contrôle de sortie.
filename
Si les paramètres optionnels filename
et line
sont fournis, headers_sent()
va placer le nom du fichier source et le numéro de ligne qui ont débuté
l'affichage, dans les variables filename
et line
.
Note:
Si l'affichage a commencé avant l'exécution du fichier source PHP (par exemple en raison d'une erreur de démarrage), le paramètre
nom du fichier
sera défini comme une chaîne vide.
line
Le numéro de la ligne où la sortie a eu lieu.
headers_sent() retourne false
si aucun en-tête
n'a été envoyé, ou true
sinon.
Exemple #1 Exemple avec headers_sent()
<?php
// Si aucun en-tête n'a été envoyé, envoyons-en un
if (!headers_sent()) {
header('Location: http://www.example.com/');
exit;
}
// Voici un exemple d'utilisation des paramètres optionnels de fichier et de ligne.
// Notez que $filename et $linenum sont transmis pour utilisation ultérieure.
// Ne les assignez pas avant de les utiliser.
if (!headers_sent($filename, $linenum)) {
header('Location: http://www.example.com/');
exit;
// Vous allez probablement déclencher une erreur ici
} else {
echo "Les en-têtes ont déjà été envoyés, depuis le fichier $filename à la ligne $linenum\n" .
"Il est donc impossible de vous rediriger automatiquement, aussi veuillez
cliquer <a href=\"http://www.example.com\">ici</a>.\n";
exit;
}
?>
Note:
Les en-têtes ne seront accessibles et s'afficheront que lorsqu'un SAPI qui les supporte sera utilisé.