[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