我正在尝试让我的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();
}
?>