header() 関数は、生の HTTP ヘッダーをクライアントに送信します。
実際の出力が送信される前に header() 関数を呼び出す必要があることを認識することが重要です (PHP 4 以降では、出力バッファリングを使用してこの問題を解決できます)。
<html><?php// これによりエラーが発生します。// 上記の出力は header() の前にあります callheader('Location: http://www.example.com/');?>
ヘッダー(文字列、置換、http_response_code)
パラメータ | 説明する |
---|---|
弦 | 必須。送信するヘッダー文字列を指定します。 |
交換する | オプション。このヘッダーが前のヘッダーを置き換えるか、2 番目のヘッダーを追加するかを示します。デフォルトは TRUE (置換) です。 FALSE (同じタイプの複数のヘッダーを許可します)。 |
http_response_code | オプション。 HTTP 応答コードを指定された値に強制します。 (PHP 4.3以降で利用可能) |
注: PHP 4.4 以降、この関数は複数のヘッダーが一度に送信されることを防ぎます。これは、ヘッダー インジェクション攻撃に対する保護措置です。
ページのキャッシュを無効にします。
<?php// 過去の日付header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");header("Cache-Control: no-cache");header("Pragma: no-cache") ;?><html><body>....
注:ユーザーがブラウザのデフォルトのキャッシュ設定を変更するために設定できるオプションがあります。上記のヘッダーを送信すると、これらの設定をオーバーライドして、ブラウザーがキャッシュしないように強制できます。
生成された PDF ファイルを保存するようにユーザーにプロンプトを表示します (Content-Disposition ヘッダーは、推奨されるファイル名を提供し、ブラウザーに保存ダイアログを強制的に表示するために使用されます)。
<?phpheader("Content-type:application/pdf");// これは、downloaded.pdfheader("Content-Disposition:attachment;filename='downloaded.pdf'") という名前になります;// PDF ソースはオリジナルです.pdfreadfile("original.pdf");?><html><body>....
注: Microsoft IE 5.5 には、上記のメカニズムを妨げるバグがあります。このバグは、Service Pack 2 以降にアップグレードすることで解決できます。