代码:
echo "1";
sleep(1);
echo "2";
sleep(1);
echo "3";
我要做的是让屏幕上的脚本echo“1”等待一秒钟,然后显示“2”等等......因为脚本等待2秒钟,然后将所有内容显示在一个。我所知道的就是它与缓冲有关
答案 0 :(得分:4)
通过在脚本开头刷新来禁用输出缓冲,并激活隐式输出缓冲区刷新。这应该这样做:
ob_implicit_flush(true);
ob_end_flush();
for ($i=0; $i<5; $i++) {
echo $i.'<br>';
sleep(1);
}
答案 1 :(得分:0)
使用ob_start();
结合ob_flush(); flush();
捕获输出,定期将其发送到浏览器。
所以你的例子会变成:
ob_start();
echo "1";
ob_flush(); flush();
sleep(1);
echo "2";
ob_flush(); flush();
sleep(1);
// ...
答案 2 :(得分:-1)
我不认为这是做这样事情的优雅方式。这些东西需要在客户端使用javascript而非服务器端使用php完成。