header関数 : PHP
PHPのheader関数の覚書。 PHPではheader関数 でHTTPレスポンスのステータス・ラインやレスポンズ・ヘッダを操作することができる。 PHPではPHPから何らかの出力が発生すると、その直前にHTTPレスポンズを出力する。そのためheader関数は、PHPからの全ての出力の前に記述する必要がある。エラーが発生する例
具体例
<html>
< ?php
header("Location : http://example.com");
?>
</html>
header関数の前に<html>が記述されておりこの直前でHTTPレスポンズが出力済みになる。
具体例
< ?php
print("Hello World");
header("Location : http://example.com");
?>
header関数の前にprint文が記述されており、PHPはprint文を出力する直前にHTTPレスポンズを出力済み。
具体例
< ?php
require_once("inc.php");
header("Location : http://ameblo.jp/kinokohirame/");
print("Hello World");
?>
---------- inc.php ----------
← inc.phpの先頭行(空行とする)
< ?php
・・・・・・・・・・・・・・・・・・・・・・・
・・・・・・・・・・・・・・・・・・・・・・・
?>
インクルード先のファイルの先頭に空行が存在し,PHPからの出力となりheader関数の前にHTTPレスポンズを出力済みとなる。
バッファリング
バッファリングを行うことで上記の問題を解決することができる。注意: PHP 4 では、この問題に対処するために出力のバッファリングを使用する ことが可能です。この場合、ブラウザへの出力が送信するまでサーバに全てバッファリングされるオーバーヘッドがあります。出力バッファリングは、 ob_start() と ob_end_flush() をスクリプトでコールするか php.ini またはサーバ設定ファイルの設定ディレクティブ output_buffering を設定することにより 行うことが可能です。output_bufferingをOnいするか数字を指定するとバッファリングが有効になる。Offにすると無効になる。
関連記事
- 関連記事は見つかりませんでした。
検索ボックスからの検索もお試しください。
コメント
Trackbacks
-
[...] 力があるとエラーが出る。includeしているファイルのの上下に空白があったり、BOMつきだとエラーが出る。 output_bufferingをOnにするとよい(header関数 : PHP | FindxFine -Web制作に関するメモ-)。 [...]
コメントの投稿
改行と段落タグは自動で挿入されます。
メールアドレスは表示されません。
トラックバックURL
http://www.findxfine.com/programming/php/715.html/trackback