PHP マニュアル
前のページ |  | 次のページ

# ob_start

(PHP 4 )

ob_start -- 出力のバッファリングを有効にする

## 説明

void ob_start ( string `[output_callback]`)

この関数は出力のバッファリングをオンにします。出力のバッファリン グがアクティブの場合、(ヘッダ以外の)スクリプトからの出力は実際に は行われず、代わりに内部バッファに追加されます。

この内部バッファの内容は、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() を適当な回数コールするよ うにして下さい。複数の出力コールバック関数がアクティブの場合、出 力はネストした順番で逐次連続的にフィルタ処理されます。

例 1ユーザ定義のコールバック関数の例
    <?php

    function callback($buffer) {

      // apples を全て oranges に置換する
      return (ereg_replace("apples", "oranges", $buffer));

    }

    ob_start("callback");

    ?>

    <html>
    <body>
    <p>It's like comparing apples to oranges.
    </body>
    </html>

    <?php

    ob_end_flush();

    ?>

出力は次のようになります。

    <html>
    <body>
    <p>It's like comparing oranges to oranges.
    </body>
    </html>

ob_get_contents(), ob_end_flush(), ob_end_clean(), ob_implicit_flush(), ob_gzhandler() も参照下さい。

前のページ | ホーム | 次のページ
ob_implicit_flush | 上に戻る | オブジェクトプロパティとメソッドコールのオーバーロード