извлекать теги (слова) из цельной строки

Каков оптимальный способ извлечения каждого слова из строки, например:

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); } 

(код не проверен)