首页 > 编程学习 > PHP 数据大量导出处理

PHP 数据大量导出处理

发布时间:2022/11/24 23:22:22

1. 事件触发脚本

2. 添加定时任务

3. PHPExcel 导出

4. fputcsv 导出

 

public function exportData(){   set_time_limit(0);ini_set('memory_limit', '1024M');$columns = ['列名1', '列名2', '列名3'      //需要几列,定义好列名];//设置好告诉浏览器要下载excel文件的headersheader('Content-Description: File Transfer');header('Content-Type: application/vnd.ms-excel');header('Content-Disposition: attachment; filename="导出数据-'.date('Y-m-d', time()).'.csv"');header('Expires: 0');header('Cache-Control: must-revalidate');header('Pragma: public');$fp = fopen('php://output', 'a');//打开output流mb_convert_variables('GBK', 'UTF-8', $columns);fputcsv($fp, $columns);//将数据格式化为CSV格式并写入到output流中//添加查询条件,获取需要的数据$query = Model::class()->where();//获取总数,分页循环处理$accessNum = $query->count();$perSize = 1000;$pages   = ceil($accessNum / $perSize);for($i = 1; $i <= $pages; $i++) {$db_data = $query->limit($perSize)->offset(($i-1)*$perSize)->get();foreach($db_data as $key => $value) {$rowData = [];//获取每列数据,转换处理成需要导出的数据//需要格式转换,否则会乱码mb_convert_variables('GBK', 'UTF-8', $rowData);fputcsv($fp, $rowData);}//释放变量的内存unset($db_data);//刷新输出缓冲到浏览器ob_flush();//必须同时使用 ob_flush() 和flush() 函数来刷新输出缓冲。flush();}fclose($fp);exit();}

 


本文链接:https://www.ngui.cc/el/2111897.html
Copyright © 2010-2022 ngui.cc 版权所有 |关于我们| 联系方式| 豫B2-20100000