在通过执行长时间的PHP程序时,出现中间ECHO 不输出的现象。
一般解决方法:加缓存字符,清缓存等方法。
echo str_pad('', 1024*4);
flush();
ob_flush();
ob_end_clean() 静默的清除服务端缓存的数据。等方法
还有增大超时设置。
set_time_limit(0);
ini_set("max_execution_time",0);
以上都不行时,可以查看APACHE日志,是否QOS模块都安全过滤设置。
测试方法,可以通过
for ($i=0;$i<30;$i++){
echo $i.
flush();
sleep(1);
}
看看能不能执行30秒,如果不能则服务端有问题。
通常在httpd.conf中,可能会有QS_SrvMinDataRate 150 1200引起截断。去掉就好了。