PHP导出百万级数据到CSV文件
2021/12/10 11:46:58
本文主要是介绍PHP导出百万级数据到CSV文件,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
实测
框架:tp3
环境:mamp搭建本地环境 mackbook pro
时间:8秒
public function excel(){ //让程序一直运行 set_time_limit(0); //设置程序运行内存 // ini_set('memory_limit', '128M'); ini_set("memory_limit", "-1"); ini_set("max_execution_time", "500"); ignore_user_abort(true); $fileName = '测试导出数据'; header('Content-Encoding: UTF-8'); header("Content-type:application/vnd.ms-excel;charset=UTF-8"); header('Content-Disposition: attachment;filename="' . $fileName . '.csv"'); //打开php标准输出流 $fp = fopen('php://output', 'a'); //添加BOM头,以UTF8编码导出CSV文件,如果文件头未添加BOM头,打开会出现乱码。 fwrite($fp, chr(0xEF).chr(0xBB).chr(0xBF)); //添加导出标题 fputcsv($fp, ['id', '商品编号', '药品名称','药品条码','药品品牌','规格','形态','厂家','是否为处方药','国药准字','拼音']); $limit = 50000; $res = M('drugs')->field('id,drugsnum,name,barcode,brand,specs,model_val,company,prescription,chinese_standard,spell')->limit(0,$limit)->order('id asc')->select(); $step = 0; for($i=0;$i<20;$i++){ //由于数据库数量有限所以 循环两次导出测试数据 增加导出条数 foreach ($res as $k => $v) { $step = $step + 1; if ($step == 1000) { ob_flush(); flush(); $step = 0; } $item = [$v['id'], $v['drugsnum'], $v['name'], '`'.$v['barcode'], $v['brand'], $v['specs'], $v['model_val'], $v['company'], $v['prescription'], $v['chinese_standard'], $v['spell']]; fputcsv($fp, $item); } } }
这篇关于PHP导出百万级数据到CSV文件的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-12-19php8的协程和hyperf的协程有什么区别?-icode9专业技术文章分享
- 2024-12-19php8 的fiber是什么?-icode9专业技术文章分享
- 2024-12-05怎么在php8,1 里面开启 debug?-icode9专业技术文章分享
- 2024-12-05怎么在php8,1 里面开启 debug?-icode9专业技术文章分享
- 2024-11-29使用PHP 将ETH账户的资产汇集到一个账户
- 2024-11-23怎么实现安卓+php 热更新方案?-icode9专业技术文章分享
- 2024-11-22PHP 中怎么实现判断多个值是否为空、null 或者为 false?-icode9专业技术文章分享
- 2024-11-11开源 PHP 商城项目 CRMEB 二次开发和部署教程
- 2024-11-09怎么使用php在kaufland平台刊登商品?-icode9专业技术文章分享
- 2024-11-05PHP的抽象类和接口是什么,有什么区别-icode9专业技术文章分享