我有一个超大500万行的大型数据表(在mongodb中)。我想将数据导出到csv并直接在浏览器中输出csv。我正在使用PHP。
对于小于一百万行的较小记录集,以下代码可以正常工作。
set_time_limit(0);
$output = fopen("php://output",'w') or die("Can't open php://output");
header("Content-Type:application/csv");
header("Content-Disposition:attachment;filename=auditresults_$i.csv");
fputcsv($output, array('id','createdon','colum1','column2','column3','colum4'));
foreach ($items as $item) {
fputcsv($output, $item)
}
fclose($output) or die("Can't close php://output");
但是,当我导出大量数据集(例如500万行)时,上述代码将失败。
我想看看是否有办法将上述结果分成100,000行并通过浏览器输出多个csv文件。
答案 0 :(得分:1)
您只能向请求发送一个回复。
解决方案可能是在您网站的临时文件夹中输出多个csv文件,并将可下载的URL链接发送给这些文件作为回复。