使输出缓冲区工作


making output buffer work

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

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

我等了几分钟才在屏幕上看到一些东西。几分钟后,我看着一个空白页面,上面有一条状态消息"等待 www.myserver.com"和"正在加载..."浏览器标题上的消息。

ob_flush不是为了防止这种行为吗?

您对上面的代码片段执行了哪些操作,以便在运行它时,您可以在浏览器上获得即时的文本流?

添加行

flush();

紧接着

    ob_flush();
浏览器

立即显示输入,你会得到一个流文本,直到整个事情转储到浏览器或脚本超时。

不要尝试此代码段,因为它会浪费大量带宽。

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

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