この関数は出力のバッファリングをオンにします。出力のバッファリン
グがアクティブの場合、(ヘッダ以外の)スクリプトからの出力は実際に は行われず、代わりに内部バッファに追加されます。
この内部バッファの内容は、
ob_get_contents()
を 用いて文字列変数にコピーされます。実際の出力は、
ob_end_flush()
がコールされた際に行われます。
ob_end_clean()
は、バッファの内容を出力せずに 消去します。
オプションの引数
output_callback
関数を指定 することが可能です。この関数は、パラメータとして文字列をとり、文 字列を返します。このコールバック関数は、
ob_end_flush()
がコールされた際、または、リク エストの最後にブラウザに出力をフラッシュする際にコールされます。
output_callback
がコールされた際に、この関 数は、出力バッファの内容をパラメータとして受取ります。このコール
バック関数は、新規の出力バッファを実際に出力される結果として返す 必要があり、この結果はブラウザに送信されます。
注意 PHP 4.0.4において、Webページの圧縮をサポートする圧縮gzエンコード されたデータのWebブラウザへの送信を容易にするために ob_gzhandler() がサポートされています。 ob_gzhandler() は、ブラウザが受け入れるcontent encodingの型を調べ、それに基づいて出力を返します。
出力バッファはスタッカブルであり、このため、他の
ob_start()
がアクティブの間に
ob_start()
をコールすることが可能です。この場 合、
ob_end_flush()
を適当な回数コールするよ うにして下さい。複数の出力コールバック関数がアクティブの場合、出
力はネストした順番で逐次連続的にフィルタ処理されます。
出力は次のようになります。
ob_get_contents()
,
ob_end_flush()
,
ob_end_clean()
,
ob_implicit_flush()
,
ob_gzhandler()
も参照下さい。