悠悠楠杉
网站页面
<?php
//让程序一直运行
set_time_limit(0);
//设置程序运行内存
ini_set('memory_limit', '128M');
$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, ['姓名', '年龄', '地区']);
$page = 1;//当前页数
$limit = 5000; //每次导出数量
while(1==1){
$limit_offset = ($page - 1) * $limit;
$data = $this->where($where)->order('id desc')->limit($limit_offset,$limit)->select()->toArray();
if(!$data){
break;
}
foreach ($data as $v) {
fputcsv($fp, $v);
}
//达到导出数量就刷新缓冲区
ob_flush();
flush();
$page++;
}