我将数据导出到 csv。我查了很多资料,问题依然存在。为了测试我创建了这个数组:
$daten[] = "HEAD1,HEAD2,HEAD3\n";
$daten[] = "VALUE1,VALUE2,VALUE3\n";
我通过
导出到csv$fp = fopen('path_to/filename.csv', 'w');
fputcsv($fp, $daten, ",", '"',"\", "\n" );
生成的 csv 在编辑器中看起来与预期略有不同:
“头1,头2,头3
“,”值1,值2,值3
”
因此文件以“开始和结束,每个新行都以“,”表示欢迎
我刚刚用过
fputcsv($fp, $daten)
=> 相同的结果 尝试过 对于数据 => 相同的结果
感谢您的帮助或提示
这不是一个数组,这是一个已经格式化为类似于 CSV 的字符串:
$daten[] = "HEAD1,HEAD2,HEAD3\n";
该字符串被视为一个单列值。 PHP 不知道您要将这些视为单独的值。
如果您有:
$daten[] = "one";
$daten[] = "two";
然后
fputcsv($daten)
,您将得到用逗号分隔的两个值:
one,two
您的示例中已经包含逗号,因此必须对它们进行转义。你会得到一行两列,因为你传入的内容是:
"HEAD1,HEAD2,HEAD3\n","VALUE1,VALUE2,VALUE3\n"
如果您想要两行,每行三列,则需要每行调用一次 fputcsv(),每次传递一个列数组:
fputcsv($fp, ['HEAD1', 'HEAD2', 'HEAD3']);
fputcsv($fp, ['VALUE1', 'VALUE2', 'VALUE3']);