网站地图    收藏   

主页 > php专栏 > php应用 >

php自动获取关键字代码 - php高级应用

来源:自学PHP网    时间:2014-11-27 22:16 作者: 阅读:

[导读] $mincipin=5;//最小词频$minlen=4;//关键字最小长度tiqukeyword($tiqustr,$minlen,$mincipin);functiontiqukeyword($tiqustr,$minlen,$minc......

php自动获取关键字代码

  1. $mincipin=5;//最小词频 
  2. $minlen=4;//关键字最小长度 
  3. tiqukeyword($tiqustr,$minlen,$mincipin); 
  4. function tiqukeyword($tiqustr,$minlen,$mincipin
  5. {$strlong=strlen($tiqustr); 
  6. $arr=array(); 
  7. $k=-1; 
  8. for($i=0;$i<($strlong-$mincipin*$minlen);$i++){ 
  9. $end=ceil(($strlong-$i)/$mincipin+$i); 
  10. for($j=$minlen;$j<$end;$j++){$num=0; 
  11. if(($guanjianzi=substr($tiqustr,$i,$j))!==false){ 
  12. $wz=$i+$j
  13. $num++;} 
  14. else{break;} 
  15. while($wz<$strlong){if(($wz=strpos($tiqustr,$guanjianzi,$wz))!==false) 
  16. {$num++; 
  17. $wz=$wz+strlen($guanjianzi);} 
  18. else break
  19. if($j==$minlen){ 
  20. if($num>=$mincipin){$maxnum=$num;$k++;$str=substr($tiqustr,$i,$j); 
  21. $arr[$k]=array($i,$j,$str,$num,0); 
  22. else{break;} 
  23. else
  24. if($num>=$maxnum){ 
  25. $maxnum=$num
  26. $str=substr($tiqustr,$i,$j); 
  27. $arr[$k]=array($i,$j,$str,$num,0); 
  28. else break
  29. echo '初步得到的数组:'
  30. print_r($arr); 
  31. //echo '<br/><br/><br/><br/>'; 
  32.   
  33. $arrlong=count($arr); 
  34. for($i=0;$i<$arrlong;$i++){ 
  35. $bjarr=$arr[$i]; 
  36. $nowid=$i
  37. if($bjarr[4]==1)continue
  38. for($j=$i+1;$j<$arrlong;$j++){ 
  39. if($arr[$j][4]==1)continue
  40. $qujianks=$bjarr[0]; 
  41. $qujianjs=$bjarr[1]+$bjarr[0]-1; 
  42. $a=$arr[$j][0]; 
  43. $b=$arr[$j][1]+$arr[$j][0]-1; 
  44. if(($bjarr[2]==$arr[$j][2])&&($bjarr[3]>$arr[$j][3]))$arr[$j][4]=1; 
  45.   
  46. if($a<=$qujianks&&$qujianks<=$b&&$a<=$qujianjs&&$qujianjs<=$b
  47. {if($bjarr[3]<=$arr[$j][3]){ 
  48. $arr[$nowid][4]=1;$nowid=$j;$bjarr=$arr[$j]; 
  49. elseif($qujianks<=$a&&$a<=$qujianjs&&$qujianks<=$b&&$b<=$qujianjs){ 
  50. $arr[$j][4]=1; 
  51.   
  52. echo '<br/><br/><br/><br/>重叠加标记后的数组:'
  53. print_r($arr); 
  54.  //开源代码phpfensi.com 
  55. $jieguoarr=array(); 
  56. for($i=0;$i<$arrlong;$i++) 
  57. {if($arr[$i][4]==0)$jieguoarr[]=$arr[$i]; 
  58.   
  59. echo '<br/><br/><br/><br/>'
  60. echo '最后得到的数组:'
  61. print_r($jieguoarr); 

自学PHP网专注网站建设学习,PHP程序学习,平面设计学习,以及操作系统学习

京ICP备14009008号-1@版权所有www.zixuephp.com

网站声明:本站所有视频,教程都由网友上传,站长收集和分享给大家学习使用,如由牵扯版权问题请联系站长邮箱904561283@qq.com

添加评论