PHP csv 文件导出
由于使用 PHPExcel 导出的数据量较大时,写入数据会比较慢,若是对数据格式要求不高的情况,可以用csv文件进行代替,csv文件在写入数据占用的内存较小,写入数据比较快。可以利用php 自带的原生方法进行生成csv文件,具体实现代码如下:
/**
* @desc 数据导出到excel(csv文件)
* @param $filename 导出的csv文件名称 如'test.csv'
* @param array $tile_array 所有列名称
* @param array $data_array 所有列数据
*/
public function export_to_csv($file_name, $tile_array=[], $data_array=[]){
ini_set('memory_limit','512M');
ini_set('max_execution_time',0);
ob_end_clean();
ob_start();
header("Content-Type: text/csv");
header("Content-Disposition:filename=".$file_name);
$fp=fopen('php://output','w');
fwrite($fp, chr(0xEF).chr(0xBB).chr(0xBF));//转码 防止乱码
fputcsv($fp,$tile_array);
$index = 0;
foreach ($data_array as $item) {
if($index==1000){
$index=0;
ob_flush();
flush();
}
$index++;
fputcsv($fp,$item);
}
ob_flush();
flush();
ob_end_clean();
}