使用:PHP 7
我需要解析CSV文件中的字符串,并在数组中返回值。我正在使用preg_match_all,但到目前为止运气不佳。
这是字符串:
"494","1","41","2009-05-18","NULL","0","3","JONES,ZACK ZX",""
这是PHP代码:
<?php
$s = '"494","1","41","2009-05-18","NULL","0","3","JONES,ZACK ZX",""' ;
$p = '(?<=^|,)(?:[^,"]+|")?(?=,|$)|(?<=^|,)".*?"(?=,|$)';
$m = Array();
$e = preg_match_all($p, $s, $m);
执行后,$m
数组应包含所有字符串值,不包含双引号字符串封闭字符。
如果您能帮助我们使用正确的正则表达式,我们将不胜感激。
根据iainn的建议,我尝试了str_getcsv
,它成功了!
答案是:
$m = str_getcsv($s, ",", """);