• [织梦吧]唯一域名:www.dedecms8.com,织梦DedeCMS学习平台.

织梦吧 - dedecms,网站模板,建站教程,图片素材免费下载

DedeCMS视频教程

修改自DEDECMS的自动关键字获取 帝国cms

来源: www.dedecms8.com 编辑:织梦吧 时间:2012-01-15点击:

修改自DEDECMS的自动关键字获取

看有人需要就放出来了, 文件下载在3楼,如果直接替换的话,请按照11楼将enews.php进行下修改,不然分割符就不是帝国需要的逗号而是空格了,(感谢hs999的反馈),请到24楼下载!

增加了2个文件(admin/Keyword/dede_wwwdic.csv,admin/Keyword/pub_splitword_),
修改了1个文件 (admin/enews.php)

修改步骤如下:

打开 enews.php 找到 79行 //增加信息 至 //修改信息
用以下内容替换


elseif($enews=="AddNews")
{
        //修改开始
        /*******************************
        //织梦分词算法
        //带词性标志的算法,使用方法:
        //普通分词 tryNumName,识别数量词及人名,$tryDiff 岐义处理
        //$strok = $sp->SplitRMM(string $str,bool $tryNumName,bool $tryDiff)
        //在DedeCms内使用的词典是从热门词中选出来的词典,不适用于通用的分词算法
        //本算法经过简化处理,取消了部份消岐规则
        ********************************/
        require_once(dirname(__FILE__)."../Keyword/pub_splitword_");
        //获得HTML里的文本
        function SpHtml2Text($str){
          $str = preg_replace("/<sty(.*)\\/style>|<scr(.*)\\/script>|<!--(.*)-->/isU","",$str);
          $alltext = "";
          $start = 1;
          for($i=0;$i<strlen($str);$i++){
                if($start==0 && $str[$i]==">") $start = 1;
                else if($start==1){
                  if($str[$i]=="<"){ $start = 0; $alltext .= " "; }
                  else if(ord($str[$i])>31) $alltext .= $str[$i];
                }
          }
          $alltext = str_replace(" "," ",$alltext);
          $alltext = preg_replace("/&([^;&]*)(;|&)/","",$alltext);
          $alltext = preg_replace("/[ ]+/s"," ",$alltext);
          return $alltext;
        }
        //获取关键词
        function GetKeywords($title,$body){
                $keywords = "";
                $sp = new SplitWord();
                $titleindexs = explode(" ",trim($sp->GetIndexText($sp->SplitRMM($title))));
                $allindexs = explode(" ",trim($sp->GetIndexText($sp->SplitRMM(spHtml2Text($body)),200)));
                if(is_array($allindexs) && is_array($titleindexs)){
                        foreach($titleindexs as $k){       
                                if(strlen($keywords)>=50) break;
                                else $keywords .= $k.",";
                        }
                        foreach($allindexs as $k){
                                if(strlen($keywords)>=50) break;
                                else if(!in_array($k,$titleindexs)) $keywords .= $k.",";
                  }
                }
                $sp->Clear();
                unset($sp);
                $keywords = preg_replace("/

标签: php mysql ecms cms
评论列表(网友评论仅供网友表达个人看法,并不表明本站同意其观点或证实其描述)

About D8

  • ©2014 织梦吧(d8) DedeCMS学习交流平台
  • 唯一网址 www.DedeCMS8.com 网站地图
  • 联系我们 tom@tiptop.cn ,  QQ