实时输出时出现PHP错误 标题('Content-type:text/html;charset=utf-8'); 回显“开始…”; ob_start(); 对于($i=0;$i

实时输出时出现PHP错误 标题('Content-type:text/html;charset=utf-8'); 回显“开始…”; ob_start(); 对于($i=0;$i,php,flush,Php,Flush,为什么这些代码不是每秒输出$i? 它在10秒后输出在我看来,当从终端运行时,您的代码确实每1秒稳定地输出$i,但当通过web加载时,它不会这样做 您的解决方法是启用隐式刷新: 然后删除ob_start()调用。以下代码可以完美地工作: header( 'Content-type: text/html; charset=utf-8' ); echo 'Begin ...<br />'; ob_start(); for( $i = 0 ; $i < 10 ; $i++ ) {

为什么这些代码不是每秒输出$i?
它在10秒后输出

在我看来,当从终端运行时,您的代码确实每1秒稳定地输出$i,但当通过web加载时,它不会这样做

您的解决方法是启用隐式刷新:

然后删除
ob_start()
调用。以下代码可以完美地工作:

header( 'Content-type: text/html; charset=utf-8' );
echo 'Begin ...<br />';
ob_start();
for( $i = 0 ; $i < 10 ; $i++ )
{
    echo $i . '<br />';
    flush();
    ob_flush();
    sleep(1);
}


谢谢你的回答,虽然仍然没有任何效果。看起来这是我的环境问题。我使用的是一个适用于windows的多功能php环境。如果使用WampServer2.1a-x32.exe,这些代码将完美工作,可能是一些扩展问题或vc问题。顺便问一下,你知道php研究的论坛、博客或网站吗?这是可行的,但并不完美。发出通知:ob_flush():未能刷新缓冲区。如果“@ob_flush,则无法工作。”“\n”标题('Content type:text/html;charset=utf-8');回显“开始…”;//ob_start();ob_end_flush();ob_隐式_冲洗(1);对于($i=0;$i<10;$i++){echo$i.\n“flush();ob_flush();sleep(1)}
<?php
    header( 'Content-type: text/html; charset=utf-8' );
    echo 'Begin ...<br />';
    ob_implicit_flush (1);
    for( $i = 0 ; $i < 10 ; $i++ )
    {
        echo $i . '<br />';
        flush();
        ob_flush();
        sleep(1);
    }
?>