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

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

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

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

分享给朋友:

相关文章

自动文章关键词后链接不变色的方法

include/ 目录下,arc.archives.class.php,在源代码1207行$kaarr[] = "<a href='$key_url' target='_blank'>$...

织梦dedecms默认作者和默认来源修改方法

方法教程:打开你的管理员目录(默认是dede)下的article_add.php文件,找到第93到95行,把默认的:修改方法:123//对保存的内容进行处理if(emptyempty($writer))$writer=$cuserLogin...

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...

dede修改缩略图文本框输入限制长度

1、用数据库管理工具登陆数据库,改数据库表dede_archives表里面的litpic字段,原默认是80,(这里改为200).2、到DEDE后台的SQL运行器里,执行以下代码:<code>ALTER TABLE&nb...

DEDECMS HTTPS访问后,网址中域名重复的解决办法

网上有人说,只要把站点跟网址清空即可解决问题,但是小编想说的是千万不要去 清空站点根网址 !千万不要!!否则你会面对更大的麻烦!真正的解决方法只有一个,那就是修改/include/helpers/channelunit.helper.php...

如何取消织梦cms的data、uploads执行php权限

登录织梦cms后台就会有提醒1.目前data、uploads有执行.php权限,非常危险,需要立即取消目录的执行权限!2.强烈建议data/common.inc.php文件属性设置为644(Linux/Unix)或只读(NT);3.强烈建议...

发表评论

访客

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