用layui 导出发现,数据记录几十万会直接网页未响应,故需要另开函数方法
//先设置内存和无限制时间
ini_set("memory_limit", "1024M");
set_time_limit(0);
$filename = date('mdHi').'各标题的查阅量统计';
header('Content-Type: application/vnd.ms-excel;charset=gbk');
header('Content-Disposition: attachment;filename="' . $filename . '.csv"');
header('Cache-Control: max-age=0');
$head = array(
'id',
'创建日起',
'创建日止',
'审核日起',
'审核日止',
'标题',
'阅读量',
);
$fp = fopen('php://output', 'a');
fputcsv($fp, $head);
unset($head);
//$count 查询多少数据 进行5000一次导出
if ($count > 0) {
$page = ceil($count / 5000);
for ($p = 1; $p <= $page; $p++) {
//$data 查询 5000条记录的sql
foreach ($data as $k => $v) {
$data_list = array(
'id' => $v[$prefix_name]['id'],
'create_time_start' => $create_time_start,
'create_time_end' => $create_time_end,
'audited_date_start' => $audited_date_start,
'audited_date_end' => $audited_date_end,
'title' => $v[$prefix_name][$fields_title],
'click' => $v[$prefix_name]['click'],
);
$data[] = $data_list;
fputcsv($fp, $data_list);
unset($data_list);
}
//刷新一下输出buffer,防止由于数据过多造成问题
ob_flush();
flush();
}
fclose($fp);
exit;
}
exit;
(文章今日已有 1 人访问,总访问量 31 ::>_<::)