array ( 0 => 'index.php', 1 => 'PHP Manual', ), 'head' => array ( 0 => 'UTF-8', 1 => 'de', ), 'this' => array ( 0 => 'function.headers-sent.php', 1 => 'headers_sent', ), 'up' => array ( 0 => 'ref.network.php', 1 => 'Netzwerk-Funktionen', ), 'prev' => array ( 0 => 'function.headers-list.php', 1 => 'headers_list', ), 'next' => array ( 0 => 'function.http-response-code.php', 1 => 'http_response_code', ), 'alternatives' => array ( ), 'source' => array ( 'lang' => 'de', 'path' => 'reference/network/functions/headers-sent.xml', ), ); $setup["toc"] = $TOC; $setup["toc_deprecated"] = $TOC_DEPRECATED; $setup["parents"] = $PARENTS; manual_setup($setup); ?>
(PHP 4, PHP 5, PHP 7, PHP 8)
headers_sent — Prüft, ob oder wo die Header bereits gesendet wurden
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 Ausgabepufferung.
filename
Sind die optionalen Parameter filename
und
line
angegeben, schreibt
headers_sent() den PHP-Dateinamen und die
Zeilennummer, an denen die Ausgabe begann, in die Variablen
filename
und line
.
Hinweis:
Wenn die Ausgabe gestartet wurde, bevor die PHP-Quelldatei ausgeführt wird (z. B. aufgrund eines Fehlers beim Start), wird der Parameter
filename
auf die leere Zeichenkette gesetzt.
line
Die Zeilennummer, an der die Ausgabe begann.
headers_sent() gibt false
zurück, wenn noch keine
HTTP-Header gesendet wurden, ansonsten true
.
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 optionalen Parameter filename 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</a> an\n";
exit;
}
?>
Hinweis:
Header sind nur dann zugänglich und werden nur dann gesendet, wenn die genutzte SAPI sie unterstützt.