拆分CSV,但不能只用逗号(PHP)?

时间:2012-07-27 07:29:40

标签: php csv

我想拆分CSV字符串。字符串看起来像这样:

“val1”,“val2”,“val3,其他一些东西”,“val4”

如您所见,值中可能有逗号(请参阅val3),因此在逗号上使用explode将无效。

我也尝试过:

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

这不起作用,我怎么办?

感谢您的帮助:)

3 个答案:

答案 0 :(得分:2)

如果您的数据位于文件中,则可以使用内置的fgetcsv

str_getcsv如果您的数据是字符串

答案 1 :(得分:2)

对于PHP函数中的CSV文件:fgetcsv

在第3个参数中,您可以设置delimetr,默认情况下为“,”(逗号)

函数读取每一行并返回包含当前行元素的数组

示例

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

答案 2 :(得分:2)

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

    }   
}