PHP输出缓冲一起显示前2个值

时间:2015-02-05 12:43:50

标签: php buffer output-buffering

我正在尝试让我的PHP脚本使用输出缓冲实时打印其数据。例如,我附加了一个循环的代码,计数为50,睡眠延迟为1.
我希望它显示并计算它像[echo 0,sleep 1,echo 1 ,睡眠1,回声2,睡眠1,回声3,睡眠1,回声4,睡眠1,......等]。 (像人一样计算)

但是,对于最初的2个值(值0和1),它们立即一起出现。前两个值之间没有缓冲延迟,它们一起输出。它不会回显0然后延迟1秒,然后回显1,延迟1 ...等。它输出值0和值1,并按照我在初始2值之后的预期工作。

为什么一起输出循环的前2个值?

<?php
header('Content-Encoding: none;');
    set_time_limit(0);
for($i=0;$i<50;$i++)
    {
    if (ob_get_level() == 0){ob_start();}
        echo $i."<br/>";
        echo str_pad('', 4096);
        ob_flush();
        flush();
        sleep(1);
    ob_end_flush();
    }
?>

0 个答案:

没有答案