php实现敏感词过滤

主要思想是将文本中的敏感词替换为‘*’。

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

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

filter.txt

[plain]  view plain copy
  1. 敏感词=***  
  2. 过滤=***  
  3. ...  
[plain]  view plain  copy
  1. 敏感词=***  
  2. 过滤=***  
  3. ...  
[php]  view plain copy
  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
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值