flush()和ob_flash()没有输出

时间:2013-10-16 20:21:07

标签: php

我已经阅读了许多文章并在线进行了研究,但我无法弄清楚为什么这些命令无法在我的机器上运行。代码被执行但它在执行整个脚本时回响。我正在使用简单的代码对其进行测试,稍后我将轻松实现其他所有内容。这是代码:

ob_start();

echo "Start ...<br />\n";
for( $i = 0 ; $i < 5 ; $i++ )
{
    echo $i."<br />\n";
    ob_flush();
    flush();
    sleep(1);
}
echo "End ...<br />\n";

我尝试使用ob_end_flush(),没有任何方法可以帮助我。我已经检查了php.ini的配置,它说:

output_buffering = 4096
zlib.output_compression = Off
implicit_flush = Off

我不知道出了什么问题,我也读过php.net“截至2012年8月,所有浏览器似乎都显示了一种全有或全无的缓冲方式。换句话说,虽然php正在运行,无法显示任何内容。

我的代码错了吗?服务器设置?浏览器?有解决方法吗?

2 个答案:

答案 0 :(得分:0)

虽然我不知道真正的答案,但您可以这样做:

<?php

ob_start();
ob_implicit_flush(false);

echo str_repeat(' ', 1024);

# rest of code here

答案 1 :(得分:0)

你试过吗?

ob_implicit_flush(true);