我有以下内容:
echo time()."<br>";
sleep(1);
echo time()."<br>";
sleep(1);
echo time()."<br>";
我编写了上面的代码,意图回显time()."<br>"
ln 1,echo time()."<br>"
ln 4,等待最后一秒,然后回显最终的time()."<br>"
。尽管在时间()之间的间隔时,bieng回显的时间是正确的,但是在每个睡眠功能的等待时间/参数的总和之后,所有的回声函数都是回声。
这是脚本的运行方式:
注意被回显的time()
中的正确增量。我的问题是为什么它没有表现出预期的回声,等待一秒钟,再次回声,等待最后一秒然后回声最后一个参数?
由于我的措辞,我知道我的问题有点令人困惑,但我会尽力回答有关此问题的任何评论,谢谢。
答案 0 :(得分:2)
您已打开输出缓冲。
PHP更有效地缓冲输出并将其全部写入浏览器,而不是以小突发写入输出。所以PHP会缓冲输出并在最后一次发送它(或者一旦缓冲区达到一定的大小)。
您可以在每次调用echo
后拨打flush()来手动刷新缓冲区(虽然我不建议这是一个“真正的”应用程序 - 但是我再也不建议调用常规应用中的sleep
,或者!)。
答案 1 :(得分:0)
您通常可以使用ob_flush()
,但绝对不可靠。不幸的是,没有其他选择。