我知道fputcsv()
是处理导出为CSV的最佳方式,但我目前正在快速修改PHP CSV导出脚本,而客户端并不想更改它是如何处理的。 (想快点!)
现在,手动创建一系列数据,每个项目都用双引号手动括起来,并添加到CSV文件中。
我的问题是,如果你的数据已经包含双引号(即"他说"是""),那么最好的处理方式是什么?额外的引号似乎打破了CSV文件。
答案 0 :(得分:0)
要在生成的CSV中转义,请使用双引号来转义它们:
val1, val2, "and he said ""Yes"" "
第三个值的结果是:and he said "Yes"
答案 1 :(得分:0)
在CSV中,您可以通过加倍来逃避引号。文件中的两个引号表示字符串中的单引号。所以你可以编写一个这样的函数来为你做。如果需要,您可以添加特定的其他转换。
function EscapeForCSV($value)
{
return '"' . str_replace('"', '""', $value) . '"';
}
注意,此函数还会添加周围的引号,因此该值是写出的完整值。
答案 2 :(得分:0)
因为附件的默认值为“” 如果要导出引号,只需将机柜值更改为,以更改机柜的默认值。 fputcsv(文件,数据字段,定界符,附件); //默认附件为“” 所以它变成这样 fputcsv(file,datafield,delimiter,“,”);