[PHP-users 1143] Re: header() 関数前の出力について

KOYAMA Tetsuji php-users@php.gr.jp
Thu, 09 Aug 2001 18:53:19 +0900


  小山です。

At Thu, 09 Aug 2001 18:11:20 +0900,
中井 誠司 wrote:
> マニュアルには、header() 関数は、「すべての実際の出力の前にコールする
> 必要がある」と記述されています。

  まず、これは正しいことです。それが大前提。

> しかし上記の環境(PHP4.0.6)で、以下のようなコードで header()関数を
> 使用した場合には Warning は出力されず、正しくヘッダーが出力されます。
> 
> <?
>   print(" ");
>   header("Location: test.php");
>   exit;
> ?>
> 
> これは、header()関数の呼出前に出力しても良いように仕様が変更された
> のでしょうか。

  4.0.6 の php.ini で

output_buffering = On
output_handler = mb_output_handler

という指定をしていませんか?

  この設定を行うとデフォルトで出力が内部バッファに送られて、ブラウザに
は直接送信されなくなります。なので header() を使っても大丈夫。

  ここをしっかり読みましょう。

	http://www.php.net/manual/ja/ref.outcontrol.php

-- 
	小山 哲志@ビート・クラフト
	koyama@beatcraft.com
	koyama@hoge.org