我有一个生成大型CSV文件的脚本,fputcsv并将其发送到浏览器.它可以工作,但浏览器不显示文件下载提示(或开始下载文件),直到整个CSV文件在服务器端生成,这需要很长时间.
相反,我希望在仍然生成文件的其余部分时开始下载.我知道这是可能的,因为它是PHPMyAdmin中"导出数据库"选项的工作方式 - 即使您的数据库很大,只要单击"导出"按钮就会立即开始下载.
我如何调整下面的现有代码,让下载立即开始?
$csv = 'title.csv';
header( "Content-Type: text/csv;charset=utf-8" );
header( "Content-Disposition: attachment;filename=\"$csv\"" );
header( "Pragma: no-cache" );
header( "Expires: 0" );
$fp = fopen('php://output', 'w');
fputcsv($fp, array_keys($array), ';', '"');
foreach ($array as $fields)
{
fputcsv($fp, $fields, ';', '"');
}
fclose($fp);
exit();
Run Code Online (Sandbox Code Playgroud)