在PHP中将多个CSV文件输出到浏览器

时间:2014-11-27 23:51:52

标签: php mongodb csv

我有一个超大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文件。

1 个答案:

答案 0 :(得分:1)

您只能向请求发送一个回复。

解决方案可能是在您网站的临时文件夹中输出多个csv文件,并将可下载的URL链接发送给这些文件作为回复。