2013-07-04 4 views
1

, имеющие строку, как это:PHP получить значения, разделенные запятыми, не приложенные

5, "hi all, this is a comma", 'text without comma', 5,'a',',',"," 

я хочу, чтобы разбить строку в массив, но все же есть ценности, которые содержат запятые (заключенные в одинарные или двойные кавычки)

, что самый быстрый регулярное выражение возможно (взрываться не будет работать здесь)

я мог бы использовать str_getcsv но строки заключены иногда одиночные кавычки, иногда двойные кавычки! нужно что-то умнее

+1

поэтому его файл CSV? –

+1

Это произошло из файла? Затем используйте 'fgetcsv()' – Barmar

+0

Нет, это пользовательский вход/сокет reciv –

ответ

3

Вы можете использовать CSV парсер или preg_split с этим рисунком:

$pattern = '~(?:\'[^\']*\'|"[^"]*"|)\K(,|$)~'; 
+0

Удивительный! благодаря –

Смежные вопросы