有个php程序需要进行大量读写操作,每次执行都要一分多钟,每次执行完后或者报错才能在页面上显示出所有echo的结果,现在想边执行边输出的话有什么好的思路?
大家讲道理2017-04-10 18:12:00
1、建议操作分批执行
2、直接输出缓冲(结果)到浏览器
<?php
//设置最长执行时间为5分钟
set_time_limit(300);
//在循环输出前,要关闭输出缓冲区
ob_end_clean();
for($i=0; $i<100000; $i++){
echo $i."操作已完成...<br />";
@ob_flush();
flush();
}
怪我咯2017-04-10 18:12:00
你的问题描述不完整
我的猜测:
你是不是在用php脚本做读写操作,然后再浏览器上打开,打开很慢或者有时候会输出内容但是报错
假如是我的猜测的问题
第一种:优化你的代码,你可以把读写分批次,去执行,不要大数组和很大数据量的去读写,因为服务器的反应时间一般只有30秒
第二种:更改你的服务器响应时间,加长服务器响应的时间,比如apache相应时间是30秒,你可以设置长一点
第三种:就是用shell脚本去执行你的读写操作,把你写的内容输入到一个文件里,然后查看!
PHPz2017-04-10 18:12:00
感觉你所描述的东西,像是导出功能。
导出功能:频繁读写。
边执行,边输出,类似于效果,已导出100条,已导出200条... 这样的效果。
具体文章链接:关于数据导出超时的问题
有问题,可以关注公众号,给我留言即可~