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

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

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

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

分享给朋友:

相关文章

DEDE SQL命令行工具更改文章属性参数

update `dede_archives` set weight=70 WHERE id=81上述更改ID为81的文章的权重为70...

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

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

dede织梦---导航栏目下拉菜单不显示外部链接栏目channelartlist标签

如果需要显示外部链接,5.7可以找include/taglib/channelartlist.lib.php第67行左右去掉红色代码$tpsql = " reid=0 AND ispart<>2 AND ishidde...

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

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

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

腾讯云登录Root用户

在腾讯云上拿到的Ubuntu主机分配给的用户是ubuntu用户,并不是root用户,而阿里云上拿到的Ubuntu主机分配给的用户就是root用户。如果没有root用户权限做事情会变得麻烦,每次做什么都要sudo一下,下面介绍怎么设置root...

dedecms织梦模板去掉文档内链自动连接关键词的下划线

方法一:织梦有一个功能,可以实现文章内出现的关键词自动加链接,但是有时候不会改CSS的话有可能这个关键词会有下划线提示,其实去掉也非常简单,只是一个u标签在起作用。 因为是文档解析过程中替换的,所以很自然的找到includearc.arch...

发表评论

访客

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