flush() 和 ob_flash() 没有输出


flush() and ob_flash() no output

我读过很多文章并在网上做了研究,但我无法弄清楚为什么这些命令在我的机器上不起作用。代码被执行,但在执行整个脚本时它会回显。我正在使用简单的代码对其进行测试,稍后我可以轻松地为其他所有内容实现它。这是代码:

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运行时,不能显示任何内容。

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

你试过吗?

ob_implicit_flush(true);

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

<?php
ob_start();
ob_implicit_flush(false);
echo str_repeat(' ', 1024);
# rest of code here