当前位置:首页 > 网站管理 > 正文内容

解决织梦dedecms关键词交叉(重叠)替换问题,关键词维护

wzccxx5年前 (2021-06-05)网站管理10

找到路径目录include中的arc.archivew.class.php文件下载到本地并打开。



查找function ReplaceKeyword($kw,&$body)代码。然后一直到最下面。替换以下的代码。

function ReplaceKeyword($kw,&$body)

{

   global $cfg_cmspath;

   $maxkey = 5;

   $kws = explode(",",trim($kw)); //以分好为间隔符

   $i=0;

   $karr = $kaarr = $GLOBALS['replaced'] = array();


   //暂时屏蔽超链接

   $body = preg_replace("/(<a(.*))(>)(.*)(<)(\/a>)/isU", '\\1-]-\\4-[-\\6', $body);


   global $dsql;

   $query="SELECT * FROM #@__keywords WHERE rpurl<>'' and sta=1 ORDER BY length(keyword)desc";

   $dsql->SetQuery($query);

   $dsql->Execute();

   while($row = $dsql->GetArray())

   {

     $key = trim($row['keyword']);

     $key_url=trim($row['rpurl']);

     $karr[] = $key;

     $kaarr[] = "<u><a href='$key_url' target='_blank'>$key</a></u>";

   }

   foreach ($karr as $key => $word)

   {


    $body = preg_replace("/(^|>)([^<]+)(?=<|$)/sUe", "_highlight('\\2', \$karr[$key], \$kaarr[$key], '\\1')", $body);

//echo $body."<br/>";


//恢复超链接

    $body = preg_replace("/(<a(.*))-\]-(.*)-\[-(\/a>)/isU", '\\1>\\3<\\4', $body);

//暂时屏蔽超链接

    $body = preg_replace("/(<a(.*))(>)(.*)(<)(\/a>)/isU", '\\1-]-\\4-[-\\6', $body);


   }


   //恢复超链接

   $body = preg_replace("/(<a(.*))-\]-(.*)-\[-(\/a>)/isU", '\\1>\\3<\\4', $body);

   return $body;

}


}//End Archives


//高亮专用, 替换多次是可能不能达到最多次

function _highlight($string, $words, $result, $pre)

{

global $cfg_replace_num;

$string = str_replace('\"', '"', $string);


if($GLOBALS['replaced'][$words] == 1)

{

   return $pre.$string;

}


if($cfg_replace_num > 0)

{

   $string = preg_replace("/".preg_quote($words)."/", $result, $string, $cfg_replace_num);

   if(strpos($string, $words) !== false)

   {

    $GLOBALS['replaced'][$words] = 1;

    //echo $words;

   }


}

else

{

    $string = str_replace($words, $result, $string);

}


return $pre.$string;

}


扫描二维码推送至手机访问。

版权声明:本文由泰山森林发布,如需转载请注明出处。

本文链接:https://wzc.tzts.ltd/post/47.html

分享给朋友:

相关文章

织梦后台点击缩略图浏览出现提示:“需输入后台管理目录才能登录”

织梦后台点击缩略图浏览出现提示:“需输入后台管理目录才能登录” 使用织梦那么久了,还真是第一次遇到这情况提示“需输入后台管理目录才能登录”,最后看到网友也有相关回答了,下面是总结的解决办法跟大家分享:第一步:找到程序目录inclu...

dede系统自定义变量删除方法

Delete FROM dede_sysconfig where varname="这里写你自己写的名称"...

dede站点转移空间后,数据库要怎么连接

DEDE 服务器转移方法 方法一: 1、进旧站后台:系统管理→数据库备份。单击下部“全选”后“提交”进行备份;   2、将旧站的所有文件上传到新站点,删除install目录下的install.lock文件;   3...

dede内容页图片判断并自动缩放代码修改处

1.在/dede58/js/article-show.js里面25行,grab_img_zoom($('.article-content img'),780);定义处理图片的尺寸2 在/dede58/js/cmstop-im...

最新织梦cms漏洞之安全设置,有效防护木马(更新至20190920)

最新织梦cms漏洞之安全设置,有效防护木马(更新至20190920)

(此图片来源于网络,如有侵权,请联系删除! )织梦CMS在安装完成后,新人往往会直接开始开发使用,忽视了一些安全优化的操作,这样会导致后期整个系统安全系数降低,被黑或者被注入的概率极高,毕竟这世界百分百存在着极多的无聊hacker对全网的网...

修改DedeCMS默认文档标题长度的方法 解决织梦文档标题不够长度

修改DedeCMS默认文档标题长度的方法 解决织梦文档标题不够长度

修改DedeCMS默认文档标题长度的方法 解决织梦文档标题不够长度,这个问题主要是dedecms v5.X版本以后针对出现,如果标题长度大于30个汉字就无法显示了。 解决方法有两步:一、先要在系统参数下的其他选项中修改文...

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。