本文教大家:dedecms文档关键词维护之关键词出现多次,只给出现的第一个加链接的

举例:当文章中出现了一百次台历时,按官方的原理,他会给一百个台历都加上链接的。dedecms这如何是好?



解决方法(记得先备份)



一、打开目录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>)/isU", '\\1-]-\\4-[-\\6', $body);




global $dsql;

$query="SELECT * FROM zmb_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[] = "$key";


}

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

{



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


//echo $body."

";



//恢复超链接

$body = preg_replace("/()/isU",'\\1>\\3<\\4', $body);


//暂时屏蔽超链接

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




}



//恢复超链接

$body = preg_replace("/()/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;

}

二、进入DEDE后台,系统-系统基本参数-其他选项的最后一行。文档内容同一关键词替换次数(0为全部替换),修改为1。

三、进入文档关键词维护,维护需要加入链接的关键词和链接即可。重新生成,效果就出来了。

相关链接:http://www.zhimengba.com/jsjc/79.html

DedeCms文档关键词替换,优先替换长尾关键词的更多相关文章

  1. dedecms文档长尾关键词,根据频率先替换长尾关键词再替换主关键词

    问题:在使用dedecms的文档关键词替换功能时,会造成交叉替换 如: 长尾关键词1:男人喝金丝皇菊有什么好处? 长尾关键词2:喝金丝皇菊有什么好处? 主关键词3:金丝皇菊 使用系统默认的功能时,在替 ...

  2. JAVA Freemarker + Word 模板 生成 Word 文档 (普通的变量替换,数据的循环,表格数据的循环,以及图片的东替换)

    1,最近有个需求,动态生成 Word 文当并供前端下载,网上找了一下,发现基本都是用 word 生成 xml 然后用模板替换变量的方式 1.1,这种方式虽然可行,但是生成的 xml 是在是太乱了,整理 ...

  3. Excel文档间的数据替换 ---电脑版APP 自动操作魔法师

    http://www.won-soft.com/macro/solution/excel-data-replace.htm 介绍: 在我们的日常工作中, 可能经常需要使用同各种数据表格打交道.比如财务 ...

  4. 优秀的目录文档内容查找,替换工具,可以飞快的帮助你查询大IIS日志哟。

    这,是一款飞速的目录文档中内容查找的工具. 它,飞快精准的帮助你查询到你想搜索的文档中的内容. 它,是一款由非常牛B,我都不晓得姓名的作者开发的,冒失是C++的windows应用. 你,非常需要他. ...

  5. 吴裕雄--天生自然python学习笔记:python文档操作自动查找替换 Word 文件中的指定文字

    Win32com 组件提供了自动替换 Word 文件中指定文字 的功能 .在使用“查找” 功能替换文字之前,可先清除源文字及目标文字的格式,以免影响替换效果,语法为 : 替换 Word 文件特定文字的 ...

  6. word文档中查找和替换空格符和回车符

    空格符:^l 回车符:^p

  7. 解决织梦dedecms文档关键字(自动内链)php5.5以上失效的问题 urf-8版本的

    找到include/arc.archives.class 在里面需要修改两次地方 在1230行 // 这里可能会有错误 if (version_compare(PHP_VERSION, '5.5.0' ...

  8. C# Word文档中插入、提取图片,文字替换图片

    Download Files:ImageOperationsInWord.zip 简介 在这篇文章中我们可以学到在C#程序中使用一个Word文档对图像的各种操作.图像会比阅读文字更有吸引力,而且图像是 ...

  9. Java中常用到的文件操作那些事(一)——替换doc文档模板,生成真实合同案例

    工作中,我们时常会遇到一些操作文件的操作,比如在线生成合同模板,上传/下载/解析Excel,doc文档转为pdf等操作.本文就已工作中遇到的在线生成合同为例,简要地介绍一种文档替换写法. 本文目的:给 ...

随机推荐

  1. java栈和堆区别

    1, 垃圾回收机制仅仅作用于堆内存,与栈内存无关; 2, 栈:stack 栈的存取速度比堆快,效率高 保存局部变量和对象的引用值 3, 堆:保存较大的变量 4, 栈有一个很重要的特殊性,就是存在栈中的 ...

  2. 【javascript激增的思考01】模块化编程

    前言 之前我做过一个web app(原来可以这么叫啦),在一个页面上有很多小窗口,每个小窗口都是独立的应用,比如: ① 我们一个小窗口数据来源是腾讯微博,需要形成腾讯微博app小窗口 ② 我们一个小窗 ...

  3. IE中的条件注释(转载自网络)

    IE条件注释是微软从IE5开始就提供的一种非标准逻辑语句,作用是可以灵活的为不同IE版本浏览器导入不同html元素,如:样式表,html标签等.很显然这种方法的最大好处就在于属于微软官方给出的兼容解决 ...

  4. 关于mapcontrol和pagelayoutcontrol切换时闪退

    今天遇到一个很奇怪的的现象,在tabcontrol里切换到pagelayout时,程序会闪退,试了下之前的程序,没有问题,去网上搜了一下,也没人有这样的问题,然后就开始实验,添加一个控件,运行一次,最 ...

  5. arcgis engine 调用arcgis server服务

    首先需要添加两个引用: using ESRI.ArcGIS.GISClient;using ESRI.ArcGIS.DataSourcesRaster; /// <summary> /// ...

  6. VPN常见错误码(633,628,691)的意思及修复方法

    因为工作原因经常上国外网站需要用到VPN,在这里总结一下使用中可能遇到的一些常见问题.(目前用Nydus觉得还不错) 1.633错误 :由于Windows系统本身的问题,在PPTP协议连接多次并断开之 ...

  7. xmpp整理笔记:聊天信息的发送与显示

    任何一个信息的发送都需要关注两个部分,信息的发出,和信息在界面中的显示 往期回顾: xmpp整理笔记:环境的快速配置(附安装包)  http://www.cnblogs.com/dsxniubilit ...

  8. iOS开发之图片分辨率与像素对齐

    像素对齐的概念 在iOS中,有一个概念叫做像素对齐,如果像素不对齐,那么在GPU渲染时,需要进行插值计算,这个插值计算的过程会有性能损耗. 在模拟器上,有一个选项可以把像素不对齐的部分显示出来.  ...

  9. Map集合概述

    java集合最后一站之Map,给自己的总结画个句号... Map用于保存具有映射关系的数据. 1.HashMap和Hashtable实现类 HashMap和Hashtable都是Map接口的典型实现类 ...

  10. android加固系列—3.加固前先学会破解,静态修改so

    [版权所有,转载请注明出处.出处:http://www.cnblogs.com/joey-hua/p/5138585.html] 项目jni的关键代码(项目地址见文章底部),获取当前程序的包名com. ...