headers_sent
(PHP 4, PHP 5)
headers_sent — Indique si les en-têtes HTTP ont déjà été envoyés
Description
&$file
[, int &$line
]] )Vé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.
Liste de paramètres
-
file
-
Si les paramètres optionnels
file
etline
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 variablesfile
etline
. -
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.
Historique
Version | Description |
---|---|
4.3.0 |
Ajout des paramètres optionnels file et
line .
|
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 // disponibles depuis PHP 4.3.0. 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 cliquez <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 supportent 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 HTTPpour plus de détails sur les tenants et aboutissants.