|
NAME="GENERATOR"
CONTENT="Modular DocBook HTML Stylesheet Version 1.7">header説明int header ( string string [, bool replace])header()関数は、HTMLファイル の送信に先立って、生のHTTPヘッダ文字列を送信 するために使用します。HTTPヘッダの詳細は、 HTTP 1.1 Specificationを参照 して下さい。 オプションのパラメータ replace は、ヘッダ が前に送信された類似のヘッダを置換するか、または、同じ形式の二番 目のヘッダを追加するかどうかを指定します。デフォルトでは、この関 数は、置換を行ないますが、二番目の引数にFALSE を指定すると、同 じ型の複数のヘッダを強制的に生成します。例えば、 特殊なheaderコールが2種類あります。最初のは、"Location" ヘッダーです。このヘッダーはブラウザに返されるだけではなく、 ApacheにREDIRECTステータスコードを返します。スクリプトの作者にとっ ては、この点はあまり重要ではありませんが、Apacheの内部動作を知る 人にとっては、理解しておくべき重要なこととなります。
2番目の特別なヘッダは、文字列"HTTP/" から始まる全てのヘッダ(大文字・小文字は区別されません)です。この ヘッダは、送信するHTTPステータスコードを示すために使用されます。 例えば、存在しないファイルへのリクエストを処理するためにあるPHPスクリ プトを使用するよう(ErrorDocumentディレクティブ により)Apacheを設定する場合、そのスクリプトが正しいステータスコー ドを返すようにする必要があります。
PHPスクリプトはしばしば動的に HTML を生成するため、クライアントブ ラウザやサーバーおよびクライアントブラウザの間でプロキシがキャッ シュを行ったりするべきではありません。多くのプロキシとクライアン トでは、以下のコードにより強制的にキャッシュを無効にできます。
覚えておいて頂きたいのは、header() 関数は、通 常の HTML タグまたは PHP からの出力にかかわらず、すべての実際の出 力の前にコールする必要があることです。 頻出するエラーとして、include() または require() 関数、他のファイルをアクセスする関数 に空白または空行があり、header() の前に出力が 行われてしまうというものがあります。同じ問題は、単一の PHP/HTMLファ イルを使用している場合でも存在します。
PDFファイルを生成するといったように送信するデータを保存するかどう かユーザにプロンプトを表示したい場合、推奨されるファイル名を指定 してブラウザに保存ダイアログを表示させるContent-Dispositionヘッダを使用可能で す。
headers_sent(), setcookie()及び HTTP認証の節も参照下さ い。 |