一尘不染

在每次`echo`调用之后如何刷新输出?

php

我有一个php脚本,只生成到客户端的日志。
当我回声时,我希望将其即时传输到客户端。
(因为在处理脚本时,页面为空白)
我已经使用ob_start()和玩过了ob_flush(),但是它们没有用。

最好的解决方案是什么?

PS:在echo通话结束时冲水有点脏…

编辑:答案都行不通,PHP还是Apache错误?


阅读 495

收藏
2020-05-26

共1个答案

一尘不染

编辑:

我在阅读手册页上的评论时遇到一个错误,该错误指出ob_implicit_flush
不能正常工作 ,以下是解决方法:

ob_end_flush();

# CODE THAT NEEDS IMMEDIATE FLUSHING

ob_start();

如果这不起作用,那么甚至可能发生的情况是,直到服务器建立足够的字符来发送它认为值得发送的数据包之后,客户端才会从服务器接收数据包。


旧答案:

您可以使用ob_implicit_flush它将告诉输出缓冲暂时关闭缓冲:

ob_implicit_flush(true);

# CODE THAT NEEDS IMMEDIATE FLUSHING

ob_implicit_flush(false);
2020-05-26