搜索

首页  >  问答  >  正文

php进行大量数据读写操作时如何动态输出?

有个php程序需要进行大量读写操作,每次执行都要一分多钟,每次执行完后或者报错才能在页面上显示出所有echo的结果,现在想边执行边输出的话有什么好的思路?

PHP中文网PHP中文网2791 天前646

全部回复(4)我来回复

  • 大家讲道理

    大家讲道理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();
    }

    回复
    0
  • 怪我咯

    怪我咯2017-04-10 18:12:00

    你的问题描述不完整

    我的猜测:
    你是不是在用php脚本做读写操作,然后再浏览器上打开,打开很慢或者有时候会输出内容但是报错
    假如是我的猜测的问题
    第一种:优化你的代码,你可以把读写分批次,去执行,不要大数组和很大数据量的去读写,因为服务器的反应时间一般只有30秒
    第二种:更改你的服务器响应时间,加长服务器响应的时间,比如apache相应时间是30秒,你可以设置长一点
    第三种:就是用shell脚本去执行你的读写操作,把你写的内容输入到一个文件里,然后查看!

    回复
    0
  • 黄舟

    黄舟2017-04-10 18:12:00

    ob_end_clean();

    回复
    0
  • PHPz

    PHPz2017-04-10 18:12:00

    感觉你所描述的东西,像是导出功能。
    导出功能:频繁读写。
    边执行,边输出,类似于效果,已导出100条,已导出200条... 这样的效果。

    具体文章链接:关于数据导出超时的问题

    有问题,可以关注公众号,给我留言即可~

    回复
    0
  • 取消回复