php实现敏感词过滤

来源:互联网 发布:淘宝网登录怎么是店铺 编辑:程序博客网 时间:2024/05/13 18:50
主要思想是将文本中的敏感词替换为‘*’。

首先得有个文本文件,用于替换规则,每行是一个替换规则:

名称为filter.txt,其规则为将文本中等号左边的字符串替换为右边的字符串

filter.txt

[plain] view plaincopy
  1. 敏感词=***  
  2. 过滤=***  
  3. ...  
[plain] view plain copy
  1. 敏感词=***  
  2. 过滤=***  
  3. ...  
[php] view plaincopy
  1. <?php  
  2. /** 
  3.  *   文本中的非法字符过滤类  
  4.  */  
  5. class Filter{  
  6.     private $pattern;  
  7.     private $replacement;  
  8.     /** 
  9.      * 构造函数,进行初始化工作,加载替换规则,并构造用于模式查找和模式替换的两个数组 
  10.      */  
  11.     public function __construct(){  
  12.         $ffopen("filter.txt","r");  
  13.         if(!$f){  
  14.             die("open filter file failed!");  
  15.         }  
  16.         while (!feof($f))  
  17.         {  
  18.             $line = fgets($f);//从过滤规则文件中读取一行记录  
  19.             $patternandreplace = explode('='$line); //用等号分割,前面的用作模式串,后面的用作替换串  
  20.             $this->pattern[] = '/'.$patternandreplace[0].'/';  
  21.             $this->replacement[] = trim($patternandreplace[1]);  
  22.         }  
  23.         fclose($f);  
  24.           
  25.     }  
  26.     /** 
  27.      * 去除$source中的敏感字符,用*替换 
  28.      * @param unknown_type $source 
  29.      */  
  30.     public function clean($source){  
  31.         return preg_replace($this->pattern,$this->replacement,$source);  
  32.     }  
  33. };  
0 0