fonction d'en-tête de PHP ()
Définition et utilisation
fonction header () au client d'envoyer des en-têtes HTTP premières.
Il est important de reconnaître que vous devez appeler la fonction header () avant toute sortie réelle est envoyé (en PHP 4 et versions ultérieures, vous pouvez utiliser la bufferisation de sortie pour résoudre ce problème):
<?php
// This results in an error.
// The output above is before the header() call
header('Location: http://www.example.com/');
?>
grammaire
参数 | 描述 |
---|---|
string | 必需。规定要发送的报头字符串。 |
replace | 可选。指示该报头是否替换之前的报头,或添加第二个报头。默认是 TRUE(替换)。FALSE(允许相同类型的多个报头)。 |
http_response_code | 可选。把 HTTP 响应代码强制为指定的值。(PHP 4.3 以及更高版本可用) |
Trucs et astuces
NOTE: A partir après PHP 4.4, la fonction d'empêcher envoyer plusieurs en- têtes.Ceci est une protection contre les attaques par injection de la tête.
exemple 1
Désactiver la page en cache:
// 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>
...
...
Remarque: Les utilisateurs peuvent définir certaines options pour modifier les paramètres de la mémoire cache du navigateur par défaut.En envoyant les en-têtes ci-dessus, vous pouvez remplacer l'un de ces paramètres, ne pas forcer le cache du navigateur!
exemple 2
Demander à l'utilisateur d'enregistrer un fichier PDF généré (Content-Disposition en-tête est utilisé pour fournir un nom de fichier recommandé et forcer le navigateur à afficher le dialogue de sauvegarde):
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>
...
...
REMARQUE: Microsoft IE 5.5 plus que l'existence d'un mécanisme pour empêcher le bug.Par la mise à niveau vers le Service Pack 2 ou versions ultérieures, vous pouvez corriger le bogue.
PHP complet Manuel de référence HTTP