使输出缓冲区工作

时间:2012-08-13 07:25:09

标签: php output-buffering

我将以下疯狂片段作为ob_start功能的试验场。

ob_start();
for ($i = 1; $i <= 100000000; $i++) {       
    echo '<li>',$i, ' ',date("H:i:s");
    ob_flush();
}

我等了几分钟才能看到屏幕上的内容。 几分钟,我看一个空白页面,状态信息“等待www.myserver.com”,浏览器标题上有“loading ...”消息。

是不是ob_flush来防止这种行为?

您对上述代码段做了什么,以便在运行时,您可以在浏览器上获得即时文本流?

1 个答案:

答案 0 :(得分:1)

添加行

flush();

之后

    ob_flush();

诀窍。浏览器立即显示输入,您将获得流式文本,直到整个事件转储到浏览器或脚本上超时。

不要试试这个小单位,否则会造成很多带宽。

有没有人知道为什么在ob_flush之后添加flush()会让它发生?

注意,只有没有ob_flush()的flush()或没有flush()的ob_flush()不起作用。