<Complete PHP HTTP de referință
Definiție și utilizare
header() funcția trimite un antet HTTP brut la un client.
Este important de observat că header() trebuie să fie numit înainte de orice ieșire real este trimis (în PHP 4 și mai târziu, puteți utiliza tampon de ieșire pentru a rezolva această problemă):
<html>
<?php
// This results in an error.
// The output above is before the header() call
header('Location: http://www.example.com/');
?>
Sintaxă
header(string,replace,http_response_code)
Parametru | Descriere |
---|---|
string | Necesar. Specifică șirul de antet pentru a trimite |
replace | Opțional. Indică dacă antetul anterior ar trebui să înlocuiască sau să adăugați un al doilea antet. Implicit este TRUE (will replace) . FALSE (allows multiple headers of the same type) |
http_response_code | Opțional. Forteaza codul de răspuns HTTP la valoarea specificată (available in PHP 4.3 and higher) |
Sfaturi și note
Note: Deoarece PHP 4.4 această funcție împiedică mai mult de un antet să fie trimis la o dată. Aceasta este o protecție împotriva atacurilor de injecție antet.
Exemplul 1
Împiedicați pagina cache:
<?php
// Date in the past
header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");
header("Cache-Control: no-cache");
header("Pragma: no-cache");
?>
<html>
<body>
...
...
Note: Există opțiuni pe care utilizatorii pot stabili pentru a modifica setările implicite de memorare în cache din browser. Prin trimiterea antetele de mai sus, ar trebui să suprascrie oricare dintre aceste setări și forța browser-ul să nu cache!
Exemplul 2
Permite utilizatorului să vi se solicite să salvați un fișier PDF generat (antetul Content-Disposition este utilizat pentru a furniza un nume de fișier recomandat și forța browser pentru a afișa caseta de dialog Save):
<?php
header("Content-type:application/pdf");
// It will be called downloaded.pdf
header("Content-Disposition:attachment;filename='downloaded.pdf'");
// The PDF source is in original.pdf
readfile("original.pdf");
?>
<html>
<body>
...
...
Note: Există o eroare în Microsoft IE 5.5 care împiedică acest lucru de la lucru. Bug-ul poate fi rezolvată prin trecerea la Service Pack 2 sau o versiune ulterioară.
<Complete PHP HTTP de referință