flush(),od_flush()有效!或不?

时间:2017-03-29 09:38:37

标签: php flush

我在使用Apache2和PHP5的Windows环境中运行此代码:

<?php
error_reporting(E_ALL);
ini_set("display_errors", 1);
ini_set("output_buffering", 0);
ini_set('zlib.output_compression', 0);

if (!ob_get_level()) {
    ob_start();
} else {
   ob_end_clean();
   ob_start();
}

for($x=0;$x<10;$x++){
    echo "<br/> Linea .... ".$x;
    flush();
    ob_flush();
    sleep(2);

}

?>

这很完美,


Linea 0(2秒)
Linea 1(2秒)
Linea 2(2秒)
...
Linea 9(2秒)

如果我在使用apache2和PHP7的Linux中运行,那就行不通了,


Linea 0
Linea 1
...
Linea 9(20秒)

但我运行脚本......

php /var/www/line.php

它运作良好。

我不同意吗?或者我的配置必须更改什么?

1 个答案:

答案 0 :(得分:0)

9是你的最后一行,所以显然需要20秒。 它等待动作或浏览器响应,直到它达到php.ini文件中的时间限制,在你的情况下设置为20秒。 这使浏览器有时间响应,我不会使用该设置,因为如果你降低连接速度慢的任何人都将失去连接