出力バッファリングの有効化
PHPではoutput_bufferingを利用して出力をバッファリングできます。
バッファリング出力を行う場合は、以下の 2 つの方法のいずれかを実行する必要があります。
- php.iniファイルにおいてoutput_buffering = Onを設定して、webサーバを再起動する。
- コード内では、ini_set(‘output_buffering’, ‘On’);を使用します。
出力バッファリングを使用すると、すべての出力がバッファに格納され、スクリプトが終了するか、バッファの内容が明示的に出力されるまで格納されます。
出力バッファの操作には以下の関数を使用できます。
- ob_start() : 出力バッファを開始します。
- ob_get_contents():バッファの内容を取得します。
- ob_end_flush(): バッファをフラッシュして空にする。
- ob_flush(): バッファの内容を出力しますが、バッファをクリアしません。
- ob_clean() : バッファの内容をクリアする。
- ob_get_length() : バッファの長さ (バイト数) を取得する。
以下はバッファ付き出力を使用する例です。
<?php
// 开启缓冲输出
ob_start();
echo "Hello World!"; // 这里的输出内容将被缓存起来
// 获取缓冲区的内容
$output = ob_get_contents();
// 清空缓冲区
ob_clean();
// 输出缓冲区的内容
echo $output;
// 关闭缓冲输出
ob_end_flush();
?>
この例では、Hello World! がキャッシュされ、ob_get_contents() でバッファの内容を取得し、ob_clean() でバッファを綺麗にして、最後に echo $output でバッファの内容を出力します。最後に、ob_end_flush() でバッファ出力を閉じ、バッファの内容をブラウザに出力します。