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

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

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

找到路径目录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

分享给朋友:

相关文章

网页嵌套的方法

1.<iframe name="content_frame" marginwidth=0 marginheight=0 width=100% height=30 src="import.htm"...

dede取消后台登陆验证码

找到织梦程序data\safe\inc_safe_config.php文件,然后用Edit打开(其它代码编辑器也可以但是切记不要用记事本打开,避免出错)找到以下代码,去掉“6”保存即可;(这种方法的作用就是关掉织梦登陆后台的验证码功能,百试...

BT宝塔面板安装提示cannot verify dg2.bt.cn's certificate, issued by ‘CN=sslTrus (RSA) OV CA,O=

【待反馈】BT不能安装软件了小藏文玩发表在Linux面板2023-5-15 10:18[复制链接]81779为了能快速了解并处理您的问题,请提供以下基础信息:面板、插件版本:免费版   7.9.10系统版本:ubtunt...

织梦dedecms全站文章列表如何排除某个栏目dede arclist 排除栏目

织梦dedecms全站文章列表如何排除某个栏目【解决方法】我们都知道织梦标签功能非常的强大,但如果栏目太多时,有的栏目文章不需要在首页显示,或者不参与排序和推荐时,只用typeid过滤和维护起来就相当麻烦,下面教大家怎么解决织梦文章列表排除...

dedecms上传图片附件文件夹按年月保存

正常情况下, dede织梦系统的图片附件是按日保存的, 一天一个文件夹, 即:20080103这种形式, 时间长了, 这样在allimg文件夹中就会生成很多图片目录文件夹, 不方便维护管理.虽然, dede的后台设置有“附件保存形式(按da...

DEDE修改成七牛云图片地址 ueditor

DEDE修改成七牛云图片地址 ueditor

灵感来源于:http://www.dedejs.com/html/article-944-1.html ,不知道什么原因,原文作者写的比较简单,甚至对数据库的修改都没有完善,这里发挥一下。第一步,参考上述文章,注册七牛帐号,开通空间,将织梦...

发表评论

访客

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