str_getcsv不会删除机箱字符

时间:2017-09-11 13:38:26

标签: php split

我想将带逗号分隔值的字符串拆分为数组。 str_getcsv似乎是一个不错的选择,但如果它位于值的开头和结尾,它会删除机箱字符(")。我想保留机箱字符。考虑字符串$str = 'foo,"bar","qwe,rty"'str_getcsv($str)返回

['foo', 'bar', 'qwe,rty']

我想

['foo', '"bar"', '"qwe,rty"']

我怎样才能做到这一点?

1 个答案:

答案 0 :(得分:0)

试试这个

$str = 'foo,"bar","qwe,rty"'
$res = preg_split('/,(?=(?:[^\"]*\"[^\"]*\")*(?![^\"]*\"))/', $str,-1,PREG_SPLIT_DELIM_CAPTURE);