この記事では、php での flash()、ob_flush()、ob_end_flush() の使用法と違いを要約して紹介します。詳しく知りたい人は参考にしてください。
まず最初に、バッファについて説明します。これは 4096 (1kb) のメモリ アドレス空間です。PHP コードが実行されるとき、PHP には php out_buffering メカニズムがあります。 、コンテンツはすぐに出力されませんが、バッファーがいっぱいになると、データはシステムカーネルに渡され、表示のためにtcpに渡されます。 phpのoutput_bufferingメカニズムがオンになっています(デフォルトでオンになっており、ob_start()関数を渡すことができます。オンになっています)。phpバッファ内のデータが設定値に達した場合にのみ、バッファ内のデータがブラウザに送信されます。 。ただし、ブラウザーにもキャッシュがあります。ブラウジングの一部のバージョンでは、データが 256 バイトに達した場合にのみコンテンツを出力します。
ob_start() 関数: 出力バッファを開きます。
関数形式 void ob_start(void)
注: バッファーがアクティブ化されると、PHP プログラムからのファイル以外のヘッダー情報はすべて送信されず、内部バッファーに保存されます。バッファの内容を出力するには、ob_end_flush() または flash() を使用してバッファの内容を出力します。
関数の形式: flash()
説明: この関数は頻繁に使用され、非常に効率的です。
関数の形式: string ob_get_contents(void)
説明: この関数は、出力バッファがアクティブ化されていない場合、現在のバッファの内容を返します。
関数の形式: int ob_get_length(void)
説明: この関数は、ob_get_contents と同様に、現在のバッファーの長さを返します。出力バッファーがアクティブ化されていない場合は、FALSE を返します。
ob_end_clean: 内部バッファの内容を削除し、内部バッファを閉じます
説明: この関数は内部バッファの内容を出力せずに削除します
ob_end_flush: 内部バッファの内容をブラウザに送信し、出力バッファを閉じます
説明: この関数は、出力バッファー (存在する場合) の内容を送信します
ob_implicit_flush: 絶対フラッシュをオンまたはオフにします
注: バッファーはデフォルトでオフになっており、絶対出力がオンになった後は、各スクリプト出力がブラウザーに直接送信されるため、flush() を呼び出す必要はありません
例
コードは次のとおりです
echo str_repeat(" ",1024);
for($i=0;$i
$i をエコーします。
睡眠(1); |
www.bkjia.com