You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

fputcsv导出CSV时自动添加逗号至新行的问题排查

问题分析与解决方法

你用fputcsv的方式完全错了,这才导致生成的CSV格式混乱。

错误根源

fputcsv的第二个参数是单一行的列数据数组,而不是整个文件的所有行组成的数组。你现在把已经拼接好逗号和换行的整行字符串放进数组,传给fputcsv,函数会把每个字符串当成一个CSV单元格——为了转义里面的逗号和换行,自动给单元格套上双引号,再用逗号分隔这两个单元格,就出现了你看到的"HEAD1,HEAD2,HEAD3\n","VALUE1,VALUE2,VALUE3\n"这种结果。

正确写法

你需要把每一行的列数据拆成一维数组,然后逐行调用fputcsv写入:

// 定义表头:每个元素对应一列
$header = ["HEAD1", "HEAD2", "HEAD3"];
// 定义数据行:每个元素对应一列
$row = ["VALUE1", "VALUE2", "VALUE3"];

$fp = fopen('path_to/filename.csv', 'w');
// 写入表头行
fputcsv($fp, $header);
// 写入数据行
fputcsv($fp, $row);
// 记得关闭文件
fclose($fp);

额外说明

  • 不需要手动在数据里加逗号、换行符,fputcsv会自动根据你指定的分隔符(默认就是逗号)和换行符处理。
  • 如果有多行数据,用循环遍历数据数组,逐行调用fputcsv即可。

内容的提问来源于stack exchange,提问作者Thomas Henke

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.17 14:00:59