在使用奇博CMS建站的时候,就会出现这样的问题。 当内容页的关键词在后台被选中并加亮显示时,如果文字中带有图片,并且图片中还有alt描述,一旦描述中包含的关键词就会存在被替换。

下面就来分享这个问题的解决方法:

打开inc目录下的artic_function.php文件,在代码中找到对应的两个函数,替换成下面的代码:

function show_keyword($content){
global $Key_word,$webdb,$pre,$db;
if(!$webdb[ifShowKeyword]){
return $content;
}
require_once(ROOT_PATH.”data/keyword.php”);
//把图片描述去掉
//$content=preg_replace(“/ alt=([^ >]+)/is”,””,$content);
foreach( $Key_word AS $key=>$value){
if(!$value){
$value=”$webdb[www_url]/do/search.php?type=title&keyword=”.urlencode($key);
}
$search[]=$key;
$replace[]=”<a rel="nofollow" href=$value style=text-decoration:underline;font-size:14px;color:{$webdb[ShowKeywordColor]}; target=_blank>$key</a>”;
}
$content=str_replace_limit($search,$replace,$content,2);
return $content;
}
function str_replace_limit($search, $replace, $subject, $limit=-1) {
if (is_array($search)) {
foreach ($search as $k=>$v) {
$search[$k] = “/(?!<[^>]+)”.preg_quote($search[$k],’/’).”(?![^<]*>)/”;
}
}else{
$search = “/(?!<[^>]+)”.preg_quote($search,’/’).”(?![^<]*>)/”;
}
return preg_replace($search, $replace, $subject, $limit);
}

至此,问题得到解决。