国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發 > PHP > 正文

php過濾敏感詞實例代碼

2024-05-04 23:13:43
字體:
來源:轉載
供稿:網友
<?php
  /**
   * Created by JetBrains PhpStorm.
   * User: lsl
   * Date: 13-8-28
   * Time: 下午2:58
   * 敏感詞過濾工具類
   * 使用方法
   * echo FilterTools::filterContent(&quot;你媽的我操一色狼雜種二山食物&quot;,&quot;*&quot;,DIR.&quot;config/word.txt&quot;,$GLOBALS[&quot;p_memcache&quot;][&quot;bad_words&quot;]);
   */
  
  class FilterTools {
      public static $keyword = array();
      /**
       * 從文件中加載敏感詞
       * @param $filename
       * @return array
       */
      static function getBadWords($filename){
          $file_handle = fopen($filename, &quot;r&quot;);
          while (!feof($file_handle)) {
              $line = trim(fgets($file_handle));
              array_push(self::$keyword,$line);
          }
          fclose($file_handle);
          return self::$keyword;
      }
  
      /**
       * @param $content 待處理字符串
       * @param $target  替換后的字符
       * @param $filename  敏感詞配置文件
       * @param $memconfig 緩存配置文件
       * @return 處理后的字符串
       */
      static function filterContent($content,$target,$filename,$memconfig){
          $mem = new BadWordsMemcache($filename,$memconfig);
          $keyword = $mem-&gt;getList();
          if(count($keyword) == 0){
              $keyword = self::getBadWords($filename);
          }
          return strtr($content, array_combine( $keyword, array_fill(0,count($keyword), $target)));
      }
  
  }
  
  /**
   * 敏感詞緩存處理類
   * Class BadWordsMemcache
   * User: lsl
   */
  class BadWordsMemcache{
      var $memcache;
      var $key;
      var $list;
      var $filename;
      function __construct($filename,$memconfig) {
          $this-&gt;filename = $filename;
          if(!class_exists(&quot;P_Memcache&quot;)){
              require_once DIR.&quot;lib/memcache.class.php&quot;;
          }
          $this-&gt;key = &quot;bad_words&quot;;
          $this-&gt;memcache = new P_Memcache();
          $this-&gt;memcache-&gt;config = $memconfig;
          $this-&gt;memcache-&gt;connect();
          print_r($this-&gt;memcache);
          $this-&gt;init();
      }
      function __destruct() {
          $this-&gt;memcache-&gt;close();
      }
  
      /**
       * 初始化
       * @param bool $isReset
       */
      function init($isReset = false){
          $this-&gt;list = $this-&gt;memcache-&gt;get($this-&gt;key)?$this-&gt;memcache-&gt;get($this-&gt;key):array();
          if(count($this-&gt;list)==0 || $isReset){
              $this-&gt;list = filterTools::getBadWords($this-&gt;filename);
              $this-&gt;memcache-&gt;set($this-&gt;key, $this-&gt;list);
              $log_data = Log::formatData($this-&gt;list);
              Log::logWrite($log_data, 'bad.words','init');
          }
      }
  
      /**
       * 獲取列表
       * @return mixed
       */
      function getList(){
          return $this-&gt;list;
      }
  } 
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 西吉县| 绍兴县| 河南省| 固安县| 广平县| 红安县| 永春县| 凤山市| 云安县| 邻水| 贵南县| 池州市| 祁东县| 阳江市| 阳山县| 虎林市| 栾川县| 仙游县| 岗巴县| 舞钢市| 新平| 灵山县| 张家港市| 安达市| 潞西市| 宝山区| 安义县| 昌江| 巩留县| 东辽县| 获嘉县| 德阳市| 安塞县| 福安市| 海安县| 教育| 嘉黎县| 天镇县| 六枝特区| 灵川县| 天水市|