(PHP 4, PHP 5, PHP 7, PHP 8)
headers_sent — Indique si les en-têtes HTTP ont déjà été envoyés
Description
headers_sent(string
&$filename
=
null
, int
&$line
=
null
): bool
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.
Liste de paramètres
-
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.
Valeurs de retour
headers_sent() retourne false
si aucun en-tête
n'a été envoyé, ou true
sinon.
Exemples
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;
}
?>
Notes
Note:
Les en-têtes ne seront accessibles et s'afficheront que lorsqu'un SAPI qui les supporte sera utilisé.
Voir aussi
- ob_start() - Enclenche la temporisation de sortie
- trigger_error() - Déclenche une erreur utilisateur
- headers_list() - Retourne la liste des en-têtes de réponse du script courant
-
header() - Envoie un en-tête HTTP brut pour plus de détails sur les
tenants et aboutissants.