使用帝国CMS建站的朋友们都知道帝国CMS系统有一个内容关键字替换的功能,可是随着关键字的增多,问题的来了,那么是什么问题呢!我们来分析一下。首先给你这么这个关键字:帝国CMS建
使用帝国CMS建站的朋友们都知道帝国CMS系统有一个内容关键字替换的功能,可是随着关键字的增多,问题的来了,那么是什么问题呢!我们来分析一下。
首先给你这么这个关键字:帝国CMS建站,帝国CMS,帝国,程序代码如下:
$str='帝国CMS建站管理系统,最安全的网站建设系统';$keyboard = '帝国CMS建站,帝国CMS,帝国';$kr = explode(',',$keyboard);foreach($kr as $v){ $str=str_replace($v,'<a href="http://www.dgcms.cn" target="_blank" class="infotextkey">'.$v.'</a>',$str);}
输出的结果步骤源代码为:
1、<a href="http://www.dgcms.cn" target="_blank" class="infotextkey">帝国CMS建站</a>管理系统,最安全的网站建设系统
2、<a href="http://www.dgcms.cn" target="_blank" class="infotextkey"><a href="http://www.dgcms.cn" target="_blank" class="infotextkey">帝国CMS</a>建站</a>管理系统,最安全的网站建设系统
3、<a href="http://www.dgcms.cn" target="_blank" class="infotextkey"><a href="http://www.dgcms.cn" target="_blank" class="infotextkey"><a href="http://www.dgcms.cn" target="_blank" class="infotextkey">帝国</a>CMS</a>建站</a>管理系统,最安全的网站建设系统
从结果我们可以看出,有多个相同的关键字被连续替换了,这样出现的结果是会造成页面的错乱,那么该如何来解决这个问题呢!解决思路如下:
仔细观察我们发现当中是有一定规律的,它们的规律是:class="infotextkey">关键字,所以我们可以利用这个特性来做一下修改,修改如下:
$str='帝国CMS建站管理系统,最安全的网站建设系统';$keyboard = '帝国CMS建站,帝国CMS,帝国';$kr = explode(',',$keyboard);foreach($kr as $v){ if(strpos($str,'class="infotextkey">'.$v)==false){ $str=str_replace($v,'<a href="http://www.dgcms.cn" target="_blank" class="infotextkey">'.$v.'</a>',$str); }}
啰嗦了这么多,小白可能不耐烦了,想知道在帝国CMS里该如何操作,答案如下:它的原理就是,在第二次替换的时候,先检查一下当前关键字是否已经被替换过一次了,如果没有替换过,就替换。
.1、打开/e/class/functions.php文件,下拉到470行,截图如下: