はじめに
PHP スクリプトが出力すると、出力制御関数はこれらを使用して出力を制御できます。これは、さまざまな状況で役立ちます。特に、スクリプトがデータの出力を開始した後にブラウザに http ヘッダーを送信する場合に便利です。出力制御関数は、header() または setcookie() によって送信されるファイル ヘッダー情報には影響せず、echo や PHP コード ブロックなどの関数間のデータにのみ影響します。
注:
以前のバージョンの欠陥のため、PHP4.1.x (4.2.x、4.3.x) からアップグレードする場合は、php.ini の implicit_flush がオフになっていることを確認する必要があります。そうでない場合は、ob_start() を使用しないでください。出力は出力内に隠されます。
基本的な使い方
<?php ob_start(); echo "Hello\n"; setcookie("cookiename", "cookiedata"); ob_end_flush(); ?>
上記の例では、echo関数の出力はob_end_flush()が呼び出されるまで出力バッファに保存されます。同時に、setcookie() の呼び出しでも、エラーが発生することなく Cookie が正常に保存されます。 (通常の状況では、データがブラウザに送信されると、http ヘッダー情報は送信できなくなります。)
出力制御関数
flush — 出力バッファをフラッシュする
ob_clean — 出力バッファをクリア (消去)
ob_end_clean — バッファをクリア(消去)し、出力バッファを閉じる
ob_end_flush — 出力バッファの内容をフラッシュ(送信)し、バッファを閉じる
ob_flush — 出力バッファの内容をフラッシュ(送信)
ob_get_clean — 現在のバッファの内容を取得し、現在の出力バッファを削除します。
ob_get_contents — 出力バッファの内容を返します。
ob_get_flush — バッファの内容をフラッシュ (送信) し、内容を文字列として返し、出力バッファを閉じます。
ob_get_length — 出力バッファーのコンテンツの長さを返します
ob_get_level — 出力バッファーメカニズムのネストレベルを返します
ob_get_status — すべての出力バッファーのステータスを取得します
ob_gzhandler — 出力バッファーを圧縮するために ob_start で使用されます Content コールバック関数。
ob_implicit_flush — 絶対フラッシュのオン/オフを切り替えます。
ob_list_handlers — 使用中のすべての出力ハンドラーをリストします。
ob_start — 出力制御バッファーをオンにする
output_add_rewrite_var — URL リライター値を追加する
output_reset_rewrite_vars — URL リライター値をリセットする