<完全なPHPのHTTPリファレンス
定義と使用法
header()関数は、クライアントに、生のHTTPヘッダを送信します。
それに気づくことが重要であるheader()任意の実際の出力は(PHP 4以降では、あなたがこの問題を解決するために、出力バッファリングを使用することができます)が送信される前に呼び出される必要があります。
<html>
<?php
// This results in an error.
// The output above is before the header() call
header('Location: http://www.example.com/');
?>
構文
header(string,replace,http_response_code)
パラメーター | 説明 |
---|---|
string | 必須。 送信するヘッダ文字列を指定します。 |
replace | 任意。 ヘッダが前の交換または第二のヘッダを追加するかどうかを示します。 デフォルトはTRUEです(will replace) 。 FALSE (allows multiple headers of the same type) |
http_response_code | 任意。 指定された値にHTTPレスポンスコードを強制的に(available in PHP 4.3 and higher) |
ヒントと注意事項
Note: PHP 4.4ので、この機能は、一度に送信される複数のヘッダを防止します。 これは、ヘッダインジェクション攻撃からの保護です。
例1
ページのキャッシングを防ぎます:
<?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:ユーザーがブラウザのデフォルトのキャッシュ設定を変更するように設定するオプションがあります。 上記のヘッダを送信することにより、あなたはそれらの設定のいずれかをオーバーライドして、キャッシュしないようにブラウザを強制する必要があります!
例2
ユーザーは、(コンテンツ-Dispositionヘッダーを推奨ファイル名を指定して保存]ダイアログボックスを表示するには、ブラウザを強制するために使用される)生成されたPDFファイルを保存するように指示されてみましょう:
<?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:作業からこれを防ぐのMicrosoft IE 5.5のバグがあります。 バグはService Pack 2以降にアップグレードすることで解決することができます。
<完全なPHPのHTTPリファレンス