【发布时间】:2011-06-09 14:53:18
【问题描述】:
我一直在寻找一段时间,但我还没有找到我的答案。我正在尝试格式化我的标签,以便根据用户输入它们的方式将它们显示为一个单词或多个单词。
例如,当用户输入:社交、书签、社交媒体时
我得到这三个单独的标签...“社交”“书签”“媒体”
我需要它显示为这三个标签......“社交”“书签”“社交媒体”
注意社交媒体是一个词。引号只是为了帮助解释,它们实际上并没有出现。还有一些用户不顾我的指示使用空格而不是逗号来分隔标签,而是制作一个长标签。
这是我现在使用的全部代码...
$query="SELECT gtags FROM posts WHERE category='".mysql_real_escape_string($CATID)."' order by rand() limit 20";
$results=$conn->execute($query);
$gtags = $results->getrows();
for($i=0; $i<count($gtags);$i++)
{
$tags .= $gtags[$i][0].",";
}
$tags = str_replace(" ", ",", $tags);
$tags = str_replace(".", ",", $tags);
$tags = str_replace("/", ",", $tags);
$tags = str_replace("+", ",", $tags);
$tags = str_replace("", " ", $tags);
$tags = str_replace(" ", ",", $tags);
$tags = explode(",", implode(",", array_unique(explode(",", $tags))));
STemplate::assign('tags',$tags);
$templateselect = "tags.tpl";
【问题讨论】:
-
您应该拆分您的 2 个问题,因为它们不相关(至少不相关)
-
用户可能应该从列表中选择标签,否则您最终会得到大量带有拼写错误的类似标签等。允许他们添加新标签,当然,然后一次只能添加一个标签。使用 Ajax,我见过一些精巧的实现。
标签: php tags keyword str-replace