首页 > PHP技术 > php中级 > 用PHP如何实现敏感词过滤
2019
06-01

用PHP如何实现敏感词过滤



本文实例讲述了PHP实现的敏感词过滤方法。分享给大家供大家参考,具体如下

1、敏感词过滤方法

/**  * @todo 敏感词过滤,返回结果  * @param array $list  定义敏感词一维数组  * @param string $string 要过滤的内容  * @return string $log 处理结果  */ function sensitive($list, $string){   $count = 0//违规词的个数   $sensitiveWord = '';  //违规词   $stringAfter = $string;  //替换后的内容   $pattern = "/".implode("|",$list)."/i"//定义正则表达式   if(preg_match_all($pattern, $string, $matches)){ //匹配到了结果     $patternList = $matches[0];  //匹配到的数组     $count = count($patternList);     $sensitiveWord = implode(',', $patternList); //敏感词数组转字符串     $replaceArray = array_combine($patternList,array_fill(0,count($patternList),'*')); //把匹配到的数组进行合并,替换使用     $stringAfter = strtr($string, $replaceArray); //结果替换   }   $log = "原句为 [ {$string} ]<br/>";   if($count==0){     $log .= "暂未匹配到敏感词!";   }else{     $log .= "匹配到 [ {$count} ]个敏感词:[ {$sensitiveWord} ]<br/>".       "替换后为:[ {$stringAfter} ]";   }   return $log; }


2、调用方法

function testAction(){   $string = 'likeyou小白喜欢小黑爱着的大黄'//要过滤的内容   $list = ['小明''小红''大白''小白''小黑''me''you'];  //定义敏感词数组   $result = $this->sensitive($list, $string);   echo ($result);   die;   //打印结果:   /*   原句为 [ likeyou小白喜欢小黑爱着的大黄 ] 匹配到 [ 3 ]个敏感词:[ you,小白,小黑 ] 替换后为:[ like**喜欢*爱着的大黄 ]     */ }


扫码芷若 获取免费视频学习资料

编程学习

查 看2019高级编程视频教程免费获取