![](http://static.oschina.net/uploads/img/201306/15110656_jXmH.png)
仔细分析了一下维基文章:发现每个内容关键字其实都有一篇以此关键字为标题的文章。规律出来了,自己花了点时间写了类似一个功能,在这里就简单说说实现逻辑:添加/修改/更新/删除博文的时候->生成一个键名=>链接地址的格式缓存文件(参考 PHP如何过滤敏感单词 )->显示文章->取缓存文件->文章内容自动匹配链接。
贴上部分代码:
//产生自动匹配关键字数组
public function autoKey(){
$sql="select art_id,art_title from tm_art";
$artList = CMDB::query($sql);
$newArtList = array();
foreach($artList as $item){
$newArtList[$item['art_title']] = '<a href="http://www.9streets.cn/art-php-'.$item['art_id'].'.html"><span style="color: rgb(255, 0, 0);">'.$item['art_title'].'</span></a>';
}
$data = serialize($newArtList);
//写入文件
$fo = @fopen(dirname(dirname(__file__))."/cache/" . 'totalArtList.xml','w');
@fwrite($fo,$data);
@fclose($fo);
}
//自动匹配关键字
public function filterWord($string) {
$file = dirname(dirname(__file__))."/cache/totalArtList.xml";
$content = @ file_get_contents($file);
$keywords = unserialize($content);
return strtr($string, $keywords);
}
本人知识面有限,分析的不到位的地方可以说说哈,欢迎童鞋们提出不足之处!
转载自:第九街-PHP[http://www.9streets.cn/]