php - fputcsv 将结果打印到屏幕而不是 csv

标签 php fputcsv

我正在尝试通过 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 条记录时,它不起作用。

我是否缺少某些设置?

最佳答案

将标题放在输出的之前!


如果您将转换为 utf 使用:

iconv("WINDOWS-1257", "UTF-8", ...

参数顺序错误

关于php - fputcsv 将结果打印到屏幕而不是 csv,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18161410/

相关文章:

php - 使用 fputcsv 从多维数组创建 CSV

php - 在 PHP 中强制在 CSV 生成的文件中换行

PHP | fputcsv : generated file only populated with field header, 但没有记录

php - jQuery 中的分隔符数字

PHP date() 仅适用于 1970 - 2038

php - 从数据库输出到textarea

c - 什么样的错误将 "errno"设置为非零?为什么 fopen() 设置 "errno"而 fputc() 不设置?

php - 无法运行套接字服务器

PHP, MySQL select, order by field and group it

php - fputcsv 和整数类型转换为字符串