使用PHP中的转义字符解析CSV文件

时间:2011-03-10 17:29:30

标签: php csv escaping google-docs

我正在尝试使用Google Docs电子表格作为一个非常简单的项目的数据库,我觉得我现在有一个工作版本,基于yc对这个问题的回答: using Google Docs as a database?

我的问题是,现在我到了可能需要对转义字符做某事的地方。我不知道CSV是否有标准实现,或者程序与程序有所不同,但这是Google Docs正在做的事情:

如果我有以下源数据(a,b,c,d,e表示5个单独的列)

a     b     c     d1, d2, d3, d4     e1, e2, "e3, e4", e5, "e6"

然后它产生以下行:

a,b,c,"d1, d2, d3, d4","e1, e2, ""e3, e4"", e5, ""e6"""

据我所知,如果它找到了某些东西并且逃脱了“as”那么它将整个领域包裹在“领域”中。也许我们只需要“进入”并将该字段从“字段”展开到字段中

有没有办法在PHP中解析这个版本的CSV?如果它真的很难,我仍然知道如何替换Google Docs中的字符,并将它们发布在不同的工作表上,但我希望可以在一个简单的PHP函数中解决它。

替代解决方案:也许以RSS或ATOM格式获取XML要容易得多,但我不知道如何解析这些格式。

1 个答案:

答案 0 :(得分:0)

使用str_getcsv,使用引号本身作为转义字符,例如:

$array = str_getcsv($str, ',', '"', '"');

如果要从文件或网络流进行解析,请考虑使用fgetcsv

相关问题