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