文章关键字转化为Tag方法
泥胚网原先在文章中有关键字的显示功能,然而仅仅是显示关键字,有一些缺点,包括存在被搜索引擎误报为关键字堆砌的可能性,同时这些关键字没有加上链接,也不能使用户尽快阅读到相同关键字的文章,也使得用户的PV数不能提高,因此,很有必要对关键字的显示做一些改进。于是就有了将关键字改为Tags的设想。
1、将关键字改为tags,首先需要对关键字进行分词处理,由于用户输入的关键字的分割符可能是空格、半角逗号、全角逗号、半角分号、全角分号等字符,用下面的代码将关键字分割到数组$key_array中:
$key=$Article->keywords;
$key=str_replace(";"," ",$key);
$key=str_replace(";"," ",$key);
$key=str_replace(","," ",$key);
$key=str_replace(","," ",$key);
$key=str_replace(""," ",$key);
$key=str_replace("|"," ",$key);
$key=trim($key);
$key_array = split(" ",$key);
2、做一个循环foreach ($key_array as $word){
if (($word<>"") && ($word<>" "))
{
$tags = $tags . "<a href=tags/".$word .' target=_blank>'.$word.'</a> ' ;
}
将分割后的关键字加上超链,并组成一个字符串赋值给$tags,将Tags放到文章中合适的地方。
3、这里的超链/tags/,其实是一个伪静态的url,真实地址是index.php?a=search&q=xxxxx,伪静态的实现相对来说比较简单,这里需要注意的是关键字包括中文字符,因此可以用.*来正则匹配,如下所示:RewriteRule ^(.*)/tags/(.*)$ $1/index\.php\?a=search&q=$2
4、这样以后还有一个问题,就是中文经过了伪静态匹配后,字符类型已转化为UTF-8了,需要在执行检索的代码中,用iconv函数转化为GB-2312类型,如:$query=(iconv('utf-8','gb2312', $query));
经过这样简单的四个步骤,就实现了每个关键字的Tag功能,不仅是文章页面数大幅增加,而且提高了用户体验。