我正在编写一个PHP脚本但却陷入flush()
函数。这是我的剧本:
<?php
echo "1";
flush();
sleep(5);
echo "2";
?>
我希望我的脚本发送'1',然后等待5秒,然后发送'2'。但相反,脚本等待5秒,然后发送'12'。我正在寻找过去几个小时的答案,但我找不到适合我的答案。
答案 0 :(得分:5)
首先
flush()可能无法覆盖Web服务器的缓冲方案,并且它对浏览器中的任何客户端缓冲都没有影响。
其次
它也不会影响PHP的用户空间输出缓冲机制。这意味着如果使用ob输出缓冲区,则必须同时调用ob_flush()和flush()来刷新ob输出缓冲区。
http://php.net/manual/en/function.flush.php
至少,请尝试拨打ob_flush()
。
答案 1 :(得分:0)
如果您将其与某种网络服务器一起使用,则还需要使用ob_flush()
。并且ob_flush
必须始终在flush()
之前。
所以你的代码是:
<?php
echo "1";
ob_flush();
flush();
sleep(5);
echo "2";
?>