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

Php 从整个字符串中提取标记(单词),php,string,Php,String,从字符串中提取每个单词的最佳方法是什么,例如: one, two, "big three", four, "seven and eight" 如果用双引号括起来的元素应视为单个元素: array("one", "two", "big three", "four", "seven and eight") 您可以使用: $tags = explode(',', $string); foreach($tags as &$tag) { $tag = trim($tag); } (未

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

one, two, "big three", four, "seven and eight"
如果用双引号括起来的元素应视为单个元素:

array("one", "two", "big three", "four", "seven and eight")
您可以使用:

$tags = explode(',', $string);
foreach($tags as &$tag)
{
    $tag = trim($tag);
}
(未选中代码)

您可以使用:

$tags = explode(',', $string);
foreach($tags as &$tag)
{
    $tag = trim($tag);
}

(未选中代码)

您应该使用CSV解析器,而不是自己滚动。PHP有一个内置函数,可以完全满足您的需要-:


请注意,这需要PHP5.3。“用户贡献的注释”显示了许多解决方法。

您应该使用CSV解析器,而不是自己滚动。PHP有一个内置函数,可以完全满足您的需要-:


请注意,这需要PHP5.3。“用户贡献的注释”显示了许多解决方法。

如果您使用的是php>=5.3,那么您就拥有str_getcsv函数

$tags = str_getcsv($tags, ',', '"', '\\');
$tags = array_map('trim', $tags);

如果您使用的是php>=5.3,那么您就拥有str_getcsv函数

$tags = str_getcsv($tags, ',', '"', '\\');
$tags = array_map('trim', $tags);

这不会处理某些输入权限,例如:。。。两个,“大,三个”,四个,…为什么&$tag?这是令人沮丧的,因为php5@Ron:真的吗?为什么?现在应该如何迭代和修改?这被认为是糟糕的编程风格。由于这个事实,这种语法导致了混乱。备选方案:foreach($array as$key=>$value){$array[$key]=$value;}这不会处理某些输入权限,例如:。。。两个,“大,三个”,四个,…为什么&$tag?这是令人沮丧的,因为php5@Ron:真的吗?为什么?现在应该如何迭代和修改?这被认为是糟糕的编程风格。由于这个事实,这种语法导致了混乱。备选方案:foreach($array as$key=>$value){$array[$key]=$value;}