海运的博客

PHP词库替换

发布时间:January 12, 2014 // 分类:PHP // No Comments

<?php  
   $start = microtime ( true ); 
   function convert($size)
   {
      $unit=array('b','kb','mb','gb','tb','pb');
      return @round($size/pow(1024,($i=floor(log($size,1024)))),2).$unit[$i];
   }

   function strtr_words($str)  
   {  
      $words=array();  
      $content = file_get_contents('t.txt');
      $content = preg_split('/\r\n/', $content, -1, PREG_SPLIT_NO_EMPTY); //分割字符串为数组
      foreach($content as $key => $value)  
      {  
         //if ($key != '')  
         if (!empty($key))  
         {  
            $str_data = explode(',', $value); //分割同义词为k-v数组
            $str = str_replace($str_data[0], $str_data[1] , $str);
            //$words+=array("$str_data[0]"=>"$str_data[1]");  
         }  
      }  
      return $str;
      //return strtr($str,$words);
   }  
   echo strtr_words('村庄,一眼望不到边际')."\n";  
   echo convert(memory_get_usage(true))."\n"; 
   $end = microtime ( true ); 
   echo "脚本执行时间".($end - $start)."\n";  
?>

14.12.22更新:
此方法词库太大时效率很差,可以将词库以key->vale方式加载到内存,文章分词遍历再替换。

标签:none

发表评论

分类
最新文章
最近回复
  • crowjin: 你确定这能过滤??不是所有请求都返回空地址::?
  • : linux系统上单个网卡多条宽带拨号获取公网IP,外网可以访问这些IP,有偿! Q:25299...
  • 硅谷少年: 非常有用,感谢分享
  • spartan2: https://dashboard.hcaptcha.com/welcome_accessib...
  • 海运: 应该能,在购买页面先手工跳过cf机器验证,后续一定时间内不更换ip应该不会再次验证。
  • spartan: 大佬斯巴达开启了CF的机器识别验证,请问插件能自动跳过吗? 另外这个脚本有没有简单使用说明,新...
  • vincent: 膜拜大佬
  • 海运: proxy-header或proxy_protocol
  • liangjw: 如果是 内部调用 或者 中间存在 代理 而上一个代理又在内网 ,那怎么处理来自代理私有IP?
  • chainofhonor: 感谢,用dnsmasq设置自动判断BIOS和UEFI成功了