2012-07-27 138 views
-1

我想分割一個CSV字符串。該字符串看起來像:分割CSV,但不是僅逗號(PHP)?

「VAL1」,「值2」,「VAL3,一些其他的東西」,「VAL4」

正如你看到的,有可能的值內的逗號(見VAL3 ),所以在逗號上使用爆炸將無法工作。

我也試過:

preg_split('/","/', $myLine) 

這不工作,雖然,我會怎麼做,否則?

感謝您的幫助:)

+0

問問題,就像你被要求在HTTP之前,請使用搜索功能://計算器.COM /問題/要求,建議。 [如何解析CSV文件已被問及幾十次回答](http://stackoverflow.com/search?q=parse+csv+php)。謝謝。 – Gordon 2012-07-27 07:34:55

+0

好吧,我記住這一點... – user1540714 2012-07-27 07:47:06

回答

2

您可以使用內置的fgetcsv如果你的數據是在一個文件中,

str_getcsv如果你的數據是一個字符串

+0

啊,是的,str_getcsv正是我所需要的!非常感謝 – user1540714 2012-07-27 07:35:30

2

對於PHP的CSV文件功能:fgetcsv

在第三個參數可以設置delimetr,默認情況下 - 「」(逗號)

函數讀取每行並返回數組當前行元素

$f = fopen('file.csv', 'r+'); 
while (($data = fgetcsv($f, 1000, ",")) !== FALSE) { 
    /* $data is array with elements for current line */ 
} 
fclose($f); 
+0

完全正確。 「fgetcsv()」支持「分隔符」(所以你可以使用除逗號之外的東西)和「外殼」(它很好地解決了這個問題)。 – paulsm4 2012-07-27 07:33:26

2
$inputfiledelimiter="~"; 
if (($handle = fopen($target_path, "r")) !== FALSE) 
{  
    while (($data = fgetcsv($handle, 0, $inputfiledelimiter)) !== FALSE) 
    { 

    } 
} 
相關問題