在通过执行长时间的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引起截断。去掉就好了。
本文探讨了PHP程序在长时间运行过程中遇到的输出中断问题,提供了多种解决方案,包括使用缓存字符、清缓存、增大超时设置等,并深入分析了服务器配置可能带来的影响。
1235

被折叠的 条评论
为什么被折叠?



