从整个字符串中提取标签(单词)


extract tags (words) from whole string

从字符串中提取每个单词的最佳方法是什么,例如:

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

(未检查代码)