为什么flush()不立即执行数据?PHP

Men*_*ndy -1 php flush

我正在编写一个PHP脚本,但却陷入了这个问题flush().这是我的脚本:

<?php
    echo "1";
    flush();
    sleep(5);
    echo "2";
?>
Run Code Online (Sandbox Code Playgroud)

我希望我的脚本发送'1',然后等待5秒,然后发送'2'.但相反,脚本等待5秒,然后发送'12'.我正在寻找过去几个小时的答案,但我找不到适合我的答案.

Chr*_*ris 5

首先

flush()可能无法覆盖Web服务器的缓冲方案,并且它对浏览器中的任何客户端缓冲没有影响.

其次

它也不会影响PHP的用户空间输出缓冲机制.这意味着如果使用ob输出缓冲区,则必须同时调用ob_flush()和flush()来刷新ob输出缓冲区.

http://php.net/manual/en/function.flush.php

至少,请尝试打电话ob_flush().