タグ: 未設定

header関数 : PHP

投稿日 : 2008年8月31日 | 更新日 : 2011年06月21日 前のページへ戻る

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にすると無効になる。

PHP | 固定リンク | Comments (1)

関連記事

    関連記事は見つかりませんでした。
    検索ボックスからの検索もお試しください。

このページの上へ移動

コメント

Trackbacks

  1. [...] 力があるとエラーが出る。includeしているファイルのの上下に空白があったり、BOMつきだとエラーが出る。 output_bufferingをOnにするとよい(header関数 : PHP | FindxFine -Web制作に関するメモ-)。 [...]

    ピンバック by SanRin舎 » PHP — 2011年6月20日 @ 11:05 PM


コメントの投稿

改行と段落タグは自動で挿入されます。
メールアドレスは表示されません。

 

 

 


トラックバックURL

http://www.findxfine.com/programming/php/715.html/trackback

このページの上へ