这是我的示例csv(具有帖子名称,标签(以逗号分隔)和日期:
Post, Tags, Date
Hello world, "tag1, tag2, tag3", "10-04-13"
Hello world 2, "tag1, tag2", "10-04-13"
在php中使用str_getcsv,我得到以下数组
Array
(
[0] => Post
[1] => Tags
[2] => Date
Hello world
[3] => \"tag1
[4] => tag2
[5] => tag3\"
[6] => \"10-04-13\"
Hello world 2
[7] => \"tag1
[8] => tag2\"
[9] => \"10-04-13\"
)
正如您所看到的,当str_getcsv解析csv时,标记中的逗号会搞乱。
任何解决方案? Csv通过excel 2007从xls导出
答案 0 :(得分:0)
看起来您的CSV正在使用反斜杠转义引号导出,因此引号被视为数据的一部分,而不是字符串数据的容器。
echo
您传递给str_getcsv
的数据,我敢打赌它看起来像这样:
Post, Tags, Date
Hello world, \"tag1, tag2, tag3\", \"10-04-13\"
Hello world 2, \"tag1, tag2\", \"10-04-13\"
在某处添加了转义,您需要找到发生这种情况的位置并阻止它,对上面显示的损坏数据进行后处理可能会导致更多问题,尤其是当您的CSV包含实际引号或反斜杠时在它的任何地方。