PHP实时输出出错

PHP Error while outputing in real time

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);
}

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

在我看来,当从终端 运行 时,您的代码确实每 1 秒稳定输出一次 $i,但在通过网络加载时却不会。

您的解决方法是启用隐式刷新:http://php.net/manual/en/function.ob-implicit-flush.php

并删除那个 ob_start() 调用。以下代码完美运行:

<?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);
    }
?>