PHP实现的敏感词过滤方法示例
发布:smiling 来源: PHP粉丝网 添加日期:2021-11-11 16:58:45 浏览: 评论:0
这篇文章主要介绍了PHP实现的敏感词过滤方法,涉及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**喜欢*爱着的大黄 ]
- */
- }
Tags: PHP敏感词过滤
推荐文章
热门文章
最新评论文章
- 写给考虑创业的年轻程序员(10)
- PHP新手上路(一)(7)
- 惹恼程序员的十件事(5)
- PHP邮件发送例子,已测试成功(5)
- 致初学者:PHP比ASP优秀的七个理由(4)
- PHP会被淘汰吗?(4)
- PHP新手上路(四)(4)
- 如何去学习PHP?(2)
- 简单入门级php分页代码(2)
- php中邮箱email 电话等格式的验证(2)