Function.headers-sent
Aus PHP-Wiki
headers_sent — Prüft, ob oder wo die Header bereits gesendet wurden
Inhaltsverzeichnis |
Beschreibung
bool headers_sent ([ string &$file [, int &$line ]] )
Prüft, ob oder wo die Header bereits gesendet wurden.
Sobald der Header-Block gesendet wurde, können Sie keine weiteren
Header-Zeilen mit der Funktion header() hinzufügen.
Mittels dieser Funktion können Sie aber zumindest Fehlermeldungen
bezüglich der HTTP-Header vermeiden. Eine andere Möglichkeit ist die
Verwendung von Output Buffering.
Parameter-Liste
- file
- Sind die optionalen Parameter file und line angegeben, schreibt headers_sent() den PHP-Dateinamen und die Zeilennummer, an denen die Ausgabe begann, in die Variablen file und line .
- line
- Die Zeilennummer, an der die Ausgabe begann.
Rückgabewerte
headers_sent() gibt FALSE zurück, wenn noch keine HTTP-Header gesendet wurden, ansonsten TRUE.
ChangeLog
Version
Beschreibung
4.3.0
Die optionalen Parameter file
und
line
wurden eingeführt.
Beispiele
Beispiel #1 Beispiel zur Verwendung von headers_sent()
<?php // Wenn keine Header gesendet wurden, sende einen if (!headers_sent()) { header ('Location: http://www.example.com/'); exit; } // Ein Beispiel für den Einsatz der seit PHP 4.3.0 verfügbaren optionalen // Parameter file und line. Beachten Sie, dass $filename und $linenum für // einen späteren Einsatz übergeben werden. // Weisen Sie ihnen davor keine Werte zu. if (!headers_sent($filename, $linenum)) { header ('Location: http://www.example.com/'); exit; // Wahrscheinlich wollen Sie hier eine Fehlermeldung auslösen } else { echo "Header bereits gesendet in $filename in Zeile $linenum\n" . "Redirect nicht moeglich, klicken Sie daher statt dessen <a " . "href=\"http://www.example.com\">diesen Link an\n"; exit; } ?>
Siehe auch
ob_start() trigger_error() headers_list() header() for a more detailed discussion of the matters involved.