php 导出几十万数据csv解决方案

              最近公司业务需求,需要导出几十万数据。原有的phpexcel 导出显然不能满足这个需求, 其一:phpexcel 只能导出不到7万条数据;其二:很容易导致内存暴增,请求报错。然后我在网上看到了这个文章https://blog.csdn.net/tim_phper/article/details/77581071。

    解决的思路就是: 分批输出,不断的刷新缓冲。利用到ob_flush() 和flush() 函数。http://www.jb51.net/article/37822.htm/

   首先要明确一个概念buffer ,其是不同设备之前交换数据的一个区域, 当buffer 达到限定值后(在php.ini配置文件中找到output_buffering配置),输出数据都会写入到php output_buffering中,直到output_buffering写满,通过tcp将这些数据传送给浏览器。

      开启缓冲前,数据在等待输出缓冲状态,flush () 函数可以直接输出到浏览器端。

     开启缓冲后,数据在输出缓冲状态,flush()就不起作用,需要用ob_flush() 将数据状态由输出状态调整为,

  https://stackoverflow.com/questions/4191385/php-buffer-ob-flush-vs-flush

  贴上封装的代码:

 
/**
* 通用的导出类
* @param $title 导出的标题
* @param $headArr 导出内容表头
* @param
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值