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

在PHP中将多个CSV文件输出到浏览器,php,mongodb,csv,Php,Mongodb,Csv,我有一个很大的数据表(在mongodb中),有超过500万行。我想将数据导出到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-Dispositio

我有一个很大的数据表(在mongodb中),有超过500万行。我想将数据导出到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万行)时,上述代码失败


我想看看是否有办法将上述结果分成100000行,并通过浏览器输出多个csv文件。

您只能对一个请求发送一个响应


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

每个请求只能提供一个响应(1个html页面、1个图像、1个pdf、1个csv文件或1个zip文件)。如果缺少分号(在
foreach
循环中)。另外,
$items
来自哪里?MongoDB在这里有什么关系?这里提到Sverri MongoDB是为了找出是否有其他方法可以通过PHP将数据导出到csv。