ホームページ >バックエンド開発 >PHPチュートリアル >PHPのob_flushとflushの違いを深く理解する
マニュアルに記載されている
ob_flush/flush はどちらも出力バッファをフラッシュするものであり、一緒に使用する必要があるため、多くの人に混乱を引き起こす可能性があります...
実際には、これらは異なるオブジェクトに対して動作する場合があります。何も動作しません。
ob_*シリーズの関数はPHP自体の出力バッファを操作します。
そのため、ob_flushはPHP自身のバッファを更新します。
厳密に言えば、これはPHPでのみ使用されます。実際の効果は、Apache モジュール (ハンドラーまたはフィルター) がインストールされている場合にのみ発生します。マニュアルでは、Apache の他のモジュールがこのアクションの結果を変更する可能性があります。
有些Apache的模块,比如mod_gzip,可能自己进行输出缓存, 这将导致flush()函数产生的结果不会立即被发送到客户端浏览器。 甚至浏览器也会在显示之前,缓存接收到的内容。例如 Netscape 浏览器会在接受到换行或 html 标记的开头之前缓存内容,并且在 接受到 </table> 标记之前,不会显示出整个表格。 一些版本的 Microsoft Internet Explorer 只有当接受到的256个 字节以后才开始显示该页面,所以必须发送一些额外的空格来让这 些浏览器显示页面内容。
したがって、この 2 つの使用の正しい順序は、最初に ob_flush、次にフラッシュですapache module
的sapi
下, flush
会通过调用sapi_module
的flush
成员函数指针, 间接的调用apache
的api: ap_rflush
刷新apache
以上がPHPのob_flushとflushの違いを深く理解するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。