Каков оптимальный способ извлечения каждого слова из строки, например:
one, two, "big three", four, "seven and eight"
где те, которые окружены двойными кавычками, должны рассматриваться как один элемент:
array("one", "two", "big three", "four", "seven and eight")
Если вы используете php> = 5.3, то у вас есть функция str_getcsv.
$tags = str_getcsv($tags, ',', '"', '\\'); $tags = array_map('trim', $tags);
Вы должны использовать синтаксический анализатор CSV, а не сворачивать свои собственные. PHP имеет встроенную функцию, которая делает именно то, что вы хотите – str_getcsv
:
$tags = str_getcsv($string); foreach($tags as $tag) { ... }
Обратите внимание, что для этого требуется PHP 5.3. «Пользовательские заметки» показывают много обходных путей для этого.
вы можете использовать:
$tags = explode(',', $string); foreach($tags as &$tag) { $tag = trim($tag); }
(код не проверен)