PHP - 导出CSV并处理报价

时间:2014-03-17 15:12:39

标签: php csv

我知道fputcsv()是处理导出为CSV的最佳方式,但我目前正在快速修改PHP CSV导出脚本,而客户端并不想更改它是如何处理的。 (想快点!)

现在,手动创建一系列数据,每个项目都用双引号手动括起来,并添加到CSV文件中。

我的问题是,如果你的数据已经包含双引号(即"他说"是""),那么最好的处理方式是什么?额外的引号似乎打破了CSV文件。

3 个答案:

答案 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,“,”);