2011-11-09 126 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