2012-07-27 97 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) 
    { 

    } 
} 
相关问题