|
どの出力をバッファするのか?
PHP のユーザレベル出力バッファは、
起動した後から、バッファリングをオフにするか、
スクリプトが終わるまでのすべての出力をバッファリングします。
PHP のユーザーレベル出力バッファにおける出力とは、
PHP が表示したりブラウザに送り返したりするすべてのものを指します。
実用的な用語で説明すると、出力とは以下に示す、
長さがゼロでないデータのことです:
-
<?php ?> タグの外側
-
ユーザが提供した変数や文字列を出力することを明確な目的とした言語構造や関数による出力。
これにあてはまる言語構造や関数は、
echo, print,
printf, var_dump,
var_export, vprintf
です。
-
実行中のスクリプトや PHP に関するデータ/情報を収集し、
出力することを目的とした関数による出力。
これにあてはまる関数は、
debug_print_backtrace, phpcredits,
phpinfo,
ReflectionExtension::info です。
-
捕捉されなかった例外や、処理されなかったエラーが発生したときに
PHP が行う出力。
(出力されるかどうかは、
display_errors と
error_reporting の設定次第です)
-
php://output に書き込まれたあらゆるデータ
注意:
stdout に直接書き込まれたり、
同様の機能を持つ SAPI 関数に渡されたデータは、
ユーザレベルの出力バッファには取り込まれません。
これに該当するのは、
fwrite を使って stdout
にデータを書き込む場合や、header や
setcookie を使ってヘッダを送信する場合です。
|