从字符串中提取每个单词的最佳方法是什么,例如:
one, two, "big three", four, "seven and eight"
其中用双引号括起来的元素应被视为单个元素:
array("one", "two", "big three", "four", "seven and eight")
您应该使用CSV解析器,而不是自己滚动。PHP 有一个内置函数,可以完全按照你想要的方式做 — str_getcsv
:
$tags = str_getcsv($string);
foreach($tags as $tag) {
...
}
请注意,这需要 PHP 5.3。"用户贡献的注释"显示了许多解决方法。
如果你使用的是php>= 5.3,那么你就有了函数str_getcsv。
$tags = str_getcsv($tags, ',', '"', '''');
$tags = array_map('trim', $tags);
您可以使用:
$tags = explode(',', $string);
foreach($tags as &$tag)
{
$tag = trim($tag);
}
(未检查代码)