ob_flush()
和flush()
有什么区别?为什么我必须两者都打电话?
此函数将发送输出缓冲区的内容(如果有).
刷新PHP的写缓冲区以及PHP使用的任何后端(CGI、web服务器等).
然而,它继续说:
[it]可能无法覆盖web服务器的缓冲方案…
所以,在我看来,我可以一直使用ob_flush()
.然而,当我这样做的时候,我得到了奇怪的结果.有人能简单地解释一下这是怎么回事吗?
ob_flush()
和flush()
有什么区别?为什么我必须两者都打电话?
此函数将发送输出缓冲区的内容(如果有).
刷新PHP的写缓冲区以及PHP使用的任何后端(CGI、web服务器等).
然而,它继续说:
[it]可能无法覆盖web服务器的缓冲方案…
所以,在我看来,我可以一直使用ob_flush()
.然而,当我这样做的时候,我得到了奇怪的结果.有人能简单地解释一下这是怎么回事吗?
ob_flush
发送应用程序启动的缓冲区.任何PHP脚本中都可能有多个嵌套ob_start()
.ob_flush
将当前内容传递到上层.
PHP本身可能(自行决定)缓冲输出.这取决于后端.但通常FastCGI
本身就有套接字缓冲区.因此,还需要调用flush()
来将当前内容发送到web服务器.
现在,Web服务器本身可能会实现另一种缓冲方案(mod_deflate
或内容过滤),而您对此没有任何影响.但这种情况很少发生,因为它需要专门配置.
不管怎样,两个都要用.