PHP header()Funktionen


PHP HTTP 参考手册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):

<html>
<?php
// Dies führt zu einem Fehler.
// Die obige Ausgabe erfolgt vor dem header()-Aufruf
header('Location: http://www.example.com/');
?>

Syntax

header(string,replace,http_response_code)

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:

<?php
// 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):

<?php
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.


PHP HTTP 参考手册Vollständiges PHP-HTTP-Referenzhandbuch Weitere Erweiterungen