借花献佛,6.0关键字自动提取插件提供下载
						 
						
							
								
									测试环境是6.0测试版本
  1.对所有模型,只要数据表有newstext或者smalltext的字段,都进行关键字分析 2.去掉无效的“,”
  使用: 1.上传/e/extend/ 后台发布修改自动获取标题关键字: 2.替换/e/admin/ecmsinfo.php(或者自己对照着修改)
  前台投稿,修改自动获取标题关键字 3.替换/e/DoInfo/ecms.php,或者自己对照修改。
  再详细的不说了,不会的覆盖就好,不要问我
  说明:本人不愿盗取别人劳动成功,该插件非[水平凡]自己写的,我只是把代码拷贝了下让他能在6.0下使用。代码没做
  任何修改。感谢提供该插件的朋友,我一直在用!!!!
  原帖5.1:http://bbs.phome.net/ShowThread/?threadid=25182&forumid=13
  http://bbs.phome.net/ShowThread/?threadid=59412&forumid=31
  感谢2位
  修改地方说明:
  如果你想在添加信息时自动获取关键字 打开/e/DoInfo/ecms.php文件 找到         $navtheid=(int)$_POST['filepass'];         AddNews($_POST,$logininid,$loginin); 替换成         //修改开始         /**********************************************************************************************************         //织梦分词算法 www.dedecms.com         //带词性标志的算法,使用方法:         //普通分词 tryNumName,识别数量词及人名,$tryDiff 岐义处理         //$strok = $sp->SplitRMM(string $str,bool $tryNumName,bool $tryDiff)         //在DedeCms内使用的词典是从热门词中选出来的词典,不适用于通用的分词算法         //本算法经过简化处理,取消了部份消岐规则         ********************************/         require_once(dirname(__FILE__)."./../extend/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)){                         $i=0;$m=0;                         foreach($titleindexs as $k){                                         if(strlen($keywords)>=50) break;                                 else{                                         if($i){        $keywords .= ",".$k;}                                         else{$keywords .=$k;$i++;}                                                                          }                         }                         foreach($allindexs as  $k){                                 if(strlen($keywords)>=50) break;                                 else if(!in_array($k,$titleindexs))                                 {                                         if($m){$keywords .= ",".$k;}//帝国要用逗号                                         else{$keywords .= $k;$m++;}//删除空白","对后面的都有好处。2008-7-3,测试还行。                                                                          }                   }                 }                 $sp->Clear();                 unset($sp);                 $keywords = preg_replace("/#p#|#e#/","",$keywords);//dede的分页,要改。                 $keywords = addslashes($keywords);                 return $keywords;          } if($_POST['newstext']){ $key1=GetKeywords($_POST['keyboard'],$_POST['newstext']); } elseif($_POST['smalltext']) { $key1=GetKeywords($_POST['keyboard'],$_POST['smalltext']); }//作部分修改,新闻则获取newstext字段,其他信息获取smalltext字段。2008-7-3,测试ok $a2=array(keyboard=>"$key1"); $post=$a2+$_POST;//这个格式可以增加到投稿。2008-7-3         $navtheid=(int)$_POST['filepass']; AddNews($post,$logininid,$loginin); //修改结束 //***************************************************************************************************         //$navtheid=(int)$_POST['filepass'];         //AddNews($_POST,$logininid,$loginin);
  如果你还想同时在修改信息时也重新获取关键字,在同一个文件
 
  找到           $navtheid=(int)$_POST['id'];         EditNews($_POST,$logininid,$loginin); 替换成         //修改开始         /**********************************************************************************************************         //织梦分词算法 www.dedecms.com         //带词性标志的算法,使用方法:         //普通分词 tryNumName,识别数量词及人名,$tryDiff 岐义处理         //$strok = $sp->SplitRMM(string $str,bool $tryNumName,bool $tryDiff)         //在DedeCms内使用的词典是从热门词中选出来的词典,不适用于通用的分词算法         //本算法经过简化处理,取消了部份消岐规则         ********************************/         require_once(dirname(__FILE__)."./../extend/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)){                         $i=0;$m=0;                         foreach($titleindexs as $k){                                         if(strlen($keywords)>=50) break;                                 else{                                         if($i){        $keywords .= ",".$k;}                                         else{$keywords .=$k;$i++;}                                                                          }                         }                         foreach($allindexs as  $k){                                 if(strlen($keywords)>=50) break;                                 else if(!in_array($k,$titleindexs))                                 {                                         if($m){$keywords .= ",".$k;}//帝国要用逗号                                         else{$keywords .= $k;$m++;}//删除空白","对后面的都有好处。2008-7-3,测试还行。                                                                          }                   }                 }                 $sp->Clear();                 unset($sp);                 $keywords = preg_replace("/#p#|#e#/","",$keywords);//dede的分页,要改。                 $keywords = addslashes($keywords);                 return $keywords;          } if($_POST['newstext']){ $key1=GetKeywords($_POST['keyboard'],$_POST['newstext']); } elseif($_POST['smalltext']) { $key1=GetKeywords($_POST['keyboard'],$_POST['smalltext']); }//作部分修改,新闻则获取newstext字段,其他信息获取smalltext字段。2008-7-3,测试ok $a2=array(keyboard=>"$key1"); $post=$a2+$_POST;//这个格式可以增加到投稿。2008-7-3         $navtheid=(int)$_POST['filepass']; EditNews($post,$logininid,$loginin); //修改结束 //***************************************************************************************************         //$navtheid=(int)$_POST['filepass'];         //EditNews($_POST,$logininid,$loginin);
  首发地址:http://www.abc3210.cn/xz/ecms/2009-09-24/81.html
  上传以下附件: [下载 *.rar](文件大小:187.35 KB,下载次数:465)
								 | 
							 
						 
						 
						
[该贴被修改 3 次,最后修改时间 2009-10-11 11:17:52 ]
 
						
  失败注定是真理 ************************** 插件问题等请不要加我Q,论坛或我网站提问! QQ:442981383 插件、风格、问题求助尽在随意 问答、小说、SWFupload、发号抽奖、采集自动审核发布 
					 |