Я хотел бы разбить строку с разделенными запятыми значениями в массив. str_getcsv
кажется хорошим вариантом, но он удаляет символ вложения ("
), если это в начале и в конце значения. Я хотел бы сохранить символы вложения. Рассмотрим строку $str = 'foo,"bar","qwe,rty"'
, str_getcsv($str)
возвращается
['foo', 'bar', 'qwe,rty']
Я бы хотел
['foo', '"bar"', '"qwe,rty"']
Как мне этого добиться?
Попробуй это
$str = 'foo,"bar","qwe,rty"'
$res = preg_split('/,(?=(?:[^\"]*\"[^\"]*\")*(?![^\"]*\"))/', $str,-1,PREG_SPLIT_DELIM_CAPTURE);
Других решений пока нет …