dedecms自动给文章中的关键字加超链接完整版
类别:建站知识   时间:03-29

织梦dedecms自动给文章中的关键字加超链接完整版 。
在 include/arc.archives.class.php 这个文件中 有两个函数需要修改 ReplaceKeyword 和 _highlight把这两个函数 第1014行开始到倒数第二行结束 修改为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", '-]--[-', $body); global $dsql;$query="SELECT * FROM dede_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[] = "<b><a href='$key_url' target='_blank'>$key</a></b>";}foreach ($karr as $key => $word){ $body = preg_replace("/(^|>)([^<]+)(?=<|$)/sUe", "_highlight('', $karr[$key], $kaarr[$key], '')", $body);//echo $body."<br/>";//恢复超链接$body = preg_replace("/(<a(.*))-]-(.*)-[-(/a>)/isU", '><', $body);//暂时屏蔽超链接$body = preg_replace("/(<a(.*))(>)(.*)(<)(/a>)/isU", '-]--[-', $body); } //恢复超链接$body = preg_replace("/(<a(.*))-]-(.*)-[-(/a>)/isU", '><', $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;}保存替换就可以了。

智慧半岛,是一家专注于青岛网站建设青岛网站开发的青岛网络公司,Copyright ©2007-2019 Ebandao.Cn 版权所有 All Rights Reserved.(建议在1366x768以上的浏览器中访问)鲁ICP备08014496号

13153297890