看有人需要就放出来了, 文件下载在3楼,如果直接替换的话,请按照11楼将enews.php进行下修改,不然分割符就不是帝国需要的逗号而是空格了,(感谢hs999的反馈),请到24楼下载!
增加了2个文件(admin/Keyword/dede_wwwdic.csv,admin/Keyword/pub_splitword_www.php), 修改了1个文件 (admin/enews.php)
修改步骤如下:
打开 enews.php 找到 79行 //增加信息 至 //修改信息 用以下内容替换
elseif($enews=="AddNews") { //修改开始 /******************************* //织梦分词算法 www.dedecms.com //带词性标志的算法,使用方法: //普通分词 tryNumName,识别数量词及人名,$tryDiff 岐义处理 //$strok = $sp->SplitRMM(string $str,bool $tryNumName,bool $tryDiff) //在DedeCms内使用的词典是从热门词中选出来的词典,不适用于通用的分词算法 //本算法经过简化处理,取消了部份消岐规则 ********************************/ require_once(dirname(__FILE__)."../Keyword/pub_splitword_www.php"); //获得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("/#p#|#e#/","",$keywords); $keywords = addslashes($keywords); return $keywords; } $key1=GetKeywords($_POST['keyboard'],$_POST['newstext']); $key1=trim("$key1",","); $a2=array(keyboard=>"$key1"); $news=$a2+$_POST; $navtheid=(int)$_POST['filepass']; AddNews($news,$logininid,$loginin); /** 修改结束 by sooden //不喜欢的直接删除以上部分,恢复下面2行。 // $navtheid=(int)$_POST['filepass']; //AddNews($_POST,$logininid,$loginin); */ }
或者直接下载后解压到admin目录下,替换原来文件。
只测试了4.6,理论上3.6以上版本都适用。
批量添加关键字在这里
|