2011-11-09 128 views
4
"AMZN","Amazon.com, Inc.",211.22,"11/9/2011","4:00pm","-6.77 - -3.11%",4673052 

Amazon.com,Inc.被视为2值而不是1。如何使用逗号分隔CSV行?

我想这$data = explode(',', $s);

如何修改是为了避免在价值问题上的逗号?

+4

您可能正在寻找http://www.php.net/manual/en/function.str-getcsv.php(但是,这是PHP> = 5.3只) –

+0

@Pekka:在输出时,我分裂返回值并在一个单独的行中打印每个值。 – ThinkCode

+0

@Galled:并非所有值都包含在引号中。例如:211.22不包含在引号中。 – ThinkCode

回答

8

你或许应该看看str_getcsv()(或fgetcsv(),如果你从一个文件加载CSV)

这将读取CSV内容到一个数组,而无需爆炸等

编辑 - 如果您使用的是PHP < 5.3 str_getcsv()将无法​​正常工作,但有一个有趣的方法here可以重现较小版本的功能。另一种方法here在创建临时文件后使用fgetcsv()

+0

fgetcsv工作得很好! – ThinkCode

0

使用专用的CSV库。一直以来都有人解释说,像CSV这样的解析文件格式手动要求麻烦,因为您不知道CSV的所有变体以及所有规则的正确做法。

+0

对不起,在PHP上有点生疏,因为我工作了一段时间。和平! – ThinkCode