这个问题在这里已有答案:
有谁知道如何做以下工作?
<?php
header( 'Content-type: text/html; charset=utf-8' );
echo 'Begin ...<br />';
for( $i = 0 ; $i < 10 ; $i++ )
{
echo $i . '<br />';
flush();
ob_flush();
sleep(1);
}
echo 'End ...<br />';
在10秒之后一次性打印1到10,而不是一个接一个地打印1秒。
添加
@ini_set('zlib.output_compression', 0);
header("Content-Encoding: none");
在脚本的顶部修复了问题。
在我看来,你必须改变顺序:
ob_flush();
flush();
无论如何,客户端的Web服务器和/或浏览器/查看器也可以缓冲输出。如果发送数据压缩(通过gzip,服务器设置),数据也可以延迟发送。