如何在PHP中立即打印回声?

omg*_*omg 6 php flush

默认情况下,在整个页面执行完毕之前,它不会打印出任何内容.

是否有任何功能可以立即冲洗掉?

但不是ob_end_flush()多次打电话,这不是我想要的.

希望你们有我吗?

Pim*_*ger 8

如果打开输出缓冲,则刷新它是向浏览器输出任何内容的唯一方法.如果你想立即输出然后转动输出缓冲.如果这不在您的控制范围内,您可以在脚本的srart处调用ob_end_flush(),这将关闭输出缓冲.然而,没有办法让一些消息通过,有些则没有(没有编写自定义echo/print函数)

调用ob_end_flush()将刷新并关闭最顶层的输出缓冲区.要确保关闭所有输出缓冲区并刷新,您可以轻松地执行此操作:

while (@ob_end_flush());
Run Code Online (Sandbox Code Playgroud)


Ais*_*ina 6

这取决于您的网络服务器.调用flush将刷新当前打开的缓冲区的输出,但是,如链接页面上所述:

flush()对Web服务器或客户端浏览器的缓冲方案没有影响.因此,您需要同时调用ob_flush()和flush()来刷新输出缓冲区.

多个服务器,尤其是Win32上的服务器,仍将缓冲脚本的输出,直到它终止,然后再将结果传输到浏览器.

像mod_gzip这样的Apache服务器模块可能会自行缓冲,这会导致flush()不会导致数据立即发送到客户端.