PHP header()Funktionen
Vollständiges PHP HTTP-Referenzhandbuch
Definition und Verwendung
Die header()-Funktion sendet einen rohen HTTP-Header an den Client.
Es ist wichtig zu wissen, dass die header()-Funktion aufgerufen werden muss, bevor eine tatsächliche Ausgabe gesendet wird (in PHP 4 und höher kann man Output-Buffering verwenden, um dieses Problem zu lösen):
<?php
// Dies führt zu einem Fehler.
// Die obige Ausgabe erfolgt vor dem header()-Aufruf
header('Location: http://www.example.com/');
?>
Syntax
| Parameters | Beschreibung |
|---|---|
| string | Erforderlich. Gibt die zu sendende Header-Zeichenkette an. |
| ersetzen | Optional. Gibt an, ob der Header einen vorherigen Header ersetzen oder einen zweiten Header hinzufügen soll. Standard ist TRUE (ersetzen). FALSE (erlaubt mehrere Header desselben Typs). |
| http_response_code | Optional. Erzwingt den HTTP-Antwortcode auf den angegebenen Wert. (Verfügbar in PHP 4.3 und höher) |
Tipps und Hinweise
Hinweis:Seit PHP 4.4 verhindert diese Funktion das gleichzeitige Senden mehrerer Header. Dies ist ein Schutz gegen Header-Injection-Angriffe.
Beispiel 1
Seiten-Caching deaktivieren:
// Datum in der Vergangenheit
header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");
header("Cache-Control: no-cache");
header("Pragma: no-cache");
?>
<html>
<body>
...
...
Hinweis:Benutzer können Optionen festlegen, die die Standard-Cache-Einstellungen des Browsers ändern. Indem Sie die oben genannten Header senden, können Sie alle diese Einstellungen außer Kraft setzen und den Browser dazu zwingen, keine Zwischenspeicherung vorzunehmen!
Beispiel 2
Fordern Sie den Benutzer auf, eine generierte PDF-Datei zu speichern (der Content-Disposition-Header wird verwendet, um einen empfohlenen Dateinamen bereitzustellen und den Browser dazu zu zwingen, den Speichern-Dialog anzuzeigen):
header("Content-type:application/pdf");
// Sie wird downloaded.pdf genannt
header("Content-Disposition:attachment;filename='downloaded.pdf'");
// Die PDF-Quelle befindet sich in original.pdf
readfile("original.pdf");
?>
<html>
<body>
...
...
Hinweis:Microsoft IE 5.5 hat einen Fehler, der den obigen Mechanismus verhindert. Ein Upgrade auf Service Pack 2 oder höher kann diesen Fehler beheben.
Vollständiges PHP-HTTP-Referenzhandbuch Weitere Erweiterungen