ホームページ  >  記事  >  バックエンド開発  >  PHP_PHP チュートリアルの flash()、ob_flush()、および ob_end_flush() の違いの概要

PHP_PHP チュートリアルの flash()、ob_flush()、および ob_end_flush() の違いの概要

WBOY
WBOYオリジナル
2016-07-21 15:12:46779ブラウズ

flush()、ob_flush()、および ob_end_flush() の違い:

まず、4096 (1kb) のメモリ アドレス空間であるバッファについて話しましょう [php.ini 設定ファイルで Output_buffering 設定を見つけます] , PHPにはphpのoutput_bufferingメカニズムがあり、PHPコードが実行されるとすぐに内容を出力するのではなく、バッファーがいっぱいになるとデータがシステムカーネルに渡されます。ブラウザは、php の出力バッファリングメカニズムがオンになっている場合 (デフォルトでオンになっており、ob_start() 関数を通じてオンにすることができます)、php バッファ内のデータが設定値により、バッファ内のデータがブラウザに送信されます。

ただし、ブラウザーにもキャッシュがあります。ブラウジングの一部のバージョンでは、データが 256 バイトに達したときにのみコンテンツを出力します。flush() は出力を待機しているコンテンツをクライアントにすぐに送信できますが、ob_flush() はバッファーがいっぱいになるまで待機することしかできません。の場合のみ出力します。

これを確認するための簡単な例を示します:

コードをコピーします コードは次のとおりです:

//ブラウザのキャッシュを防止します
echo str_repeat(" ",1024);
for($i=0;$i<5 ;$ i++){
echo $i;
sleep(1);
flush();//1秒ごとに数値を出力します。ob_flush()を使うと5秒待って一緒に出力します
}
? >

www.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/326610.html技術記事 flash()、ob_flush()、ob_end_flush() の違い: まず、バッファについて説明します。これは 4096 (1kb) のメモリ アドレス空間です [php.ini 設定ファイルで Output_buffering 設定を見つけてください。 .
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。