【范文啦网:学习生活中必备的范文网站!www.fanwenla.com】

当前位置: 主页 > 电脑网络 > 网络知识 > 织梦dede文档关键词交叉重叠解决办法 正文

织梦dede文档关键词交叉重叠解决办法



【导读】织梦默认设置文章内链关键词方法:系统 》系统基本参数 》其他选项的最后一行。文档内容同一关键词替换次数(0为全部替换):1(1表示只链接第一个出现的目标关键词)。 根据范文啦网的实际使用情况,实际会出现一个问题。比如我在后台设置了两个锚文本链接范文(正文请查看以下部分)
    标签:

         织梦默认设置文章内链关键词方法:系统 》系统基本参数 》其他选项的最后一行。文档内容同一关键词替换次数(0为全部替换):1(1表示只链接第一个出现的目标关键词)。

        根据范文啦网的实际使用情况,实际会出现一个问题。比如我在后台设置了两个锚文本链接“范文啦”、“范文啦网”,但文章第一次出现“范文啦”这个词的时候,本来设想是应该链接到“范文啦网”所对应的页面,但是织梦默认设置为链接到“范文啦”所对应的页面。那么,这种情况应该如何处理呢?

  解决方法(先备份)

  第一步:打开目录include中的arc.archivew.class.php(arc.archives.class.php)

  找到function ReplaceKeyword($kw,&$body)代码,从这里然后一直到最下面的“?>”之前。替换这段代码:
 
  1. function ReplaceKeyword($kw,&$body 
  2.  
  3.    global $cfg_cmspath 
  4.    $maxkey 5;  
  5.    $kws explode(",",trim($kw)); //以分好为间隔符  
  6.    $i=0;  
  7.    $karr $kaarr $GLOBALS['replaced'array();  
  8.   
  9.    //暂时屏蔽超链接  
  10.    $body preg_replace("/()(.*)(<)(\/a>)/isU", '\\1-]-\\4-[-\\6'$body);  
  11.   
  12.    global $dsql 
  13.    $query="SELECT FROM dede_keywords WHERE rpurl<>'' and sta=1 ORDER BY length(keyword)desc" 
  14.    $dsql->SetQuery($query);  
  15.    $dsql->Execute();  
  16.    while($row $dsql->GetArray())  
  17.     
  18.      $key trim($row['keyword']);  
  19.      $key_url=trim($row['rpurl']);  
  20.      $karr[] $key 
  21.      $kaarr[] "$key" 
  22.     
  23.    foreach ($karr as $key => $word 
  24.     
  25.   
  26.     $body preg_replace("/(^|>)([^<]+)(?=<|$)/sUe""_highlight('\\2', \$karr[$key], \$kaarr[$key], '\\1')"$body);  
  27. //echo $body." ";  
  28.   
  29. //恢复超链接  
  30.     $body preg_replace("/()/isU", '\\1>\\3<\\4'$body);  
  31. //暂时屏蔽超链接  
  32.     $body preg_replace("/()(.*)(<)(\/a>)/isU", '\\1-]-\\4-[-\\6'$body);  
  33.   
  34.     
  35.   
  36.    //恢复超链接  
  37.    $body preg_replace("/()/isU", '\\1>\\3<\\4'$body);  
  38.    return $body 
  39.  
  40.   
  41. }//End Archives  
  42.   
  43. //高亮专用, 替换多次是可能不能达到最多次  
  44. function _highlight($string$words$result$pre 
  45.  
  46. global $cfg_replace_num 
  47. $string str_replace('\"''"'$string);  
  48.   
  49. if($GLOBALS['replaced'][$words== 1)  
  50.  
  51.    return $pre.$string 
  52.  
  53.   
  54. if($cfg_replace_num 0)  
  55.  
  56.    $string preg_replace("/".preg_quote($words)."/"$result$string$cfg_replace_num);  
  57.    if(strpos($string$words!== false)  
  58.     
  59.     $GLOBALS['replaced'][$words1;  
  60.     //echo $words;  
  61.     
  62.   
  63.  
  64. else  
  65.  
  66.     $string str_replace($words$result$string);  
  67.  
  68.   
  69. return $pre.$string 
  70. }  

  进入后台生成,至此大功告成。

备注:

1 文章提到的arc.archivew.class.php,织梦在升级后变成了 arc.archives.class.php

2 修改过程中,文档末尾"?>”千万要保留

这篇文章写得很好,不过代码有问题

这篇文章的代码是正确的

  

织梦dede文档关键词交叉重叠解决办法》出自:范文啦网,百度搜:"范文啦",第一个就是本站,很好找的哦~【温馨提示】"Ctrl+D"收藏此页面!您可以前往《电脑知识》栏目查看更多电脑知识。

【返回网络知识目录】


如果你觉得内容不错,请赞一下吧,谢谢了
------分隔线----------------------------
------分隔线----------------------------
------分隔线----------------------------
------分隔线----------------------------
------分隔线----------------------------
免责声明】本站发布的作品部分转载于互联网,旨在提供网民阅读参考。若《织梦dede文档关键词交叉重叠解决办法》涉及版权问题,或作者不同意本站转载您的作品,请通知我们,收到反馈我们会将相关稿件删除处理。因为本站编辑人手有限,而部分作文出处也无从考究,所以没注明《织梦dede文档关键词交叉重叠解决办法》的出处或转载到本站请您谅解,感谢各位的包容与支持!