headers_sent

(PHP 4, PHP 5, PHP 7, PHP 8)

headers_sentIndique si les en-têtes HTTP ont déjà été envoyés

Description

headers_sent(string &$filename = null, int &$line = null): bool

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

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.