我正在尝试使用php将数据库数据导出为.csv文件。在一定长度的数据后,它不会将查询保存到.csv文件中,而是显示在屏幕上。看起来这与查询的记录无关,也似乎与任何特殊字符无关。
$handle = fopen("php://output", "w");
fputcsv($handle, array('Name','Text','Link','Category','Price','Package', 'Date of upload','Date of verification','Date of expiry','Status','Clk'));
for ($c=0; $c<$num_rows; $c++)
{
$row2[$c][0] = iconv("UTF-8","WINDOWS-1257",html_entity_decode( $row2[$c][0] ,ENT_COMPAT,'utf-8'));
$row2[$c][1] = iconv("UTF-8","WINDOWS-1257",html_entity_decode( $row2[$c][1] ,ENT_COMPAT,'utf-8'));
fputcsv($handle, array($row2[$c][0], $row2[$c][1], $row2[$c][2], $row2[$c][3], $row2[$c][4], $row2[$c][5], $row2[$c][6], $row2[$c][7], $row2[$c][8], $row2[$c][9], $row2[$c][10]));
}
fclose($handle);
header('Content-Type: text/csv; utf-8');
header("Content-Disposition: attachment; filename=".$filename);
header("Pragma: no-cache");
header("Expires: 0");
11列,18条记录。有19条记录时就无法正常工作。
我是否错过了某些设置?
php://stdout
,而是使用php://output
。使用php://stdout
会得到一个空文件。另外,我的 utf 转换有什么问题吗? - erdomesterphp://output
是非常好的,尤其是在处理操作流的函数时。您能详细说明一下,为什么在您看来它没有意义吗? - dev-null-dweller