2011-12-19 127 views
3

我有一個csv文件(真的很大),我用php解析。csv解析,避免「」

現在是這樣。

x,y,z,value,etc 

但有時是這樣的:

x,"blah,blah,blah",z,value,etc 

這樣:explode(',',$string); 在內的 「」 值也會發生爆炸的一切情況。

array([0]=>x,[1]=>"blah,[2]=>blah,[3]=>blah"....) 

我能做些什麼有這樣的:

array([0]=>x,[1]=>"blah,blah,blah",[2]=>z....) 

呢?

感謝

回答

5

不要使用爆炸,使用fgetcsv

僅解析字符串時使用str_getcsv如果您的PHP> = 5.3。

0

如果我是你,不得不使用你所說的方法。我會通過正則表達式解析引號內的文本字符串。

更換,以(例如)

X 「等等*等等*等等」,Z,a *值,等等

然後與再次爆炸字符串,

現在你應該得到一個合適的數組,但是現在你有了bla * bla * bla。

然後,只需做陣列上str_replace函數

並以這種方式,你應該工作..

這僅適用,如果你有嚴格的規定如何解析..(在這種情況下,由爆炸);