出力バッファリングは、(ヘッダとクッキーを除く)どのくらいの出力データ を制御する機構PHPです がそのデータをクライアントにプッシュする前に内部的に保持する必要があります。アプリケーションの出力がこの設定の を超えた場合、PHPは指定したサイズのおよそ のチャンクでそのデータを送信します。この設定を有効にして、最大バッファーのサイズを に設定すると、アプリケーションとWebサーバーの に応じていくつかの面白い副作用が生じる可能性があります。既にprintまたはechoを使用して出力を送信した後に、ヘッダーと のCookieを送信できる場合があります。 パケットがバッファリングされた出力とPHPの出力をストリーミングしているために、 パケットが出てこない場合は、 のパフォーマンスが向上することがあります。実動サーバーでは、パフォーマンス上の理由により、4096バイトが の設定として適しています。
注:出力バッファリングコントロール の機能によって出力バッファリングを制御することもできます。
php.iniの設定可能な値:
On = Enabled and buffer is unlimited. (Use with caution)
Off = Disabled
Integer = Enables the buffer and sets its maximum size in bytes.
eg: output_buffering = Off
注:にoutput_bufferingが設定されている場合、このディレクティブは、CLI SAPI
http://php.net/output-buffering
Aのワーキング例えばオフにハードコードされます〜4096
<?php
ob_start();
// Output string to overflow browser php.ini output_buffering setting.
echo str_repeat(PHP_EOL, 4097);
for ($i=0; $i<5; $i++) {
echo PHP_EOL.$i;
ob_flush();
flush();
sleep(1);
}
ob_end_flush();
?>