【问题标题】:How to check for tags如何检查标签
【发布时间】:2011-02-12 23:07:21
【问题描述】:

我想强制用户在标签字段中输入至少一个标签。但是,如果他们输入多个,则用逗号分隔,您将如何在 php 中检查这一点?

'php'、'arsenal'、ermm...'firefox' 意义上的标签,而不是

'<html>' `'</html>'`.

和这个问题一样,标记为php,tags

【问题讨论】:

  • “标签”是什么意思?标签的名称(例如"div")?自闭标签(例如"&lt;div/&gt;")?打开和关闭标签(例如"&lt;div&gt;&lt;/div&gt;")?允许使用哪个标签 - 是否允许用户输入 "&lt;omgwtfbbq&gt;" 之类的内容?
  • 您能否添加一个示例标签字符串,正如您在尝试确定标签数量时所期望的那样?

标签: php tags


【解决方案1】:

您可以尝试如下爆炸。但它非常不灵活,因为意外的空间会改变预期的输出。

$tagString = "my tag,your tag";
$tags = explode(',', $tagString);

if(count($tags) >= 1) {
    echo "one tag or more";
} else {
    echo "no tags"
}

我建议使用preg_split,它更宽容。

$tagString = "my tag, your tag";
$tags = preg_split('/,\s?/', $tagString);

if(count($tags) >= 1) {
    echo "one tag or more";
} else {
    echo "no tags"
}

【讨论】:

    【解决方案2】:

    错了。怎么没有? Explode 使用 ',' 作为分隔符的字符串,并检查结果数组中的每个值是否为有效标记。

    【讨论】:

      【解决方案3】:

      最简单的方法是用逗号分解字符串,例如:

      explode(",",$tags);
      

      这将是一个标签列表

      【讨论】:

        【解决方案4】:

        您可以使用正则表达式来做到这一点。

        一个例子是这样的:([a-zA-Z0-9]+)(([,][ ][a-zA-Z0-9]+))* 允许大小写字符和数字的所有组合,由 , 分隔。它还检查两个“标签”是否由逗号和空格分隔

        最好在输入级别检查它,并且只允许在 php 后端匹配以上正则表达式的输入,方法是检查您要处理的字符串是否与正则表达式匹配,然后用逗号将其分解。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2014-08-09
          • 2012-04-30
          • 1970-01-01
          • 1970-01-01
          • 2012-01-15
          • 2012-05-12
          • 1970-01-01
          相关资源
          最近更新 更多