PHP实现的敏感词过滤方法示例


Posted in PHP onMarch 06, 2019

本文实例讲述了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**喜欢*爱着的大黄 ]
    */
}
PHP 相关文章推荐
转PHP手册及PHP编程标准
Dec 17 PHP
PHP设计模式之解释器模式的深入解析
Jun 13 PHP
Php output buffering缓存及程序缓存深入解析
Jul 15 PHP
PHP实现图片裁剪、添加水印效果代码
Oct 01 PHP
php树型类实例
Dec 05 PHP
php从完整文件路径中分离文件目录和文件名的方法
Mar 13 PHP
CodeIgniter读写分离实现方法详解
Jan 20 PHP
Zend Framework教程之响应对象的封装Zend_Controller_Response实例详解
Mar 07 PHP
简单谈谈php浮点数精确运算
Mar 10 PHP
PHP获取数据库表中的数据插入新的表再原删除数据方法
Oct 12 PHP
详解如何实现Laravel的服务容器的方法示例
Apr 15 PHP
PHP开发api接口安全验证操作实例详解
Mar 26 PHP
详解PHP 二维数组排序保持键名不变
Mar 06 #PHP
PHP获取ttf格式文件字体名的方法示例
Mar 06 #PHP
php ajax confirm 删除实例详解
Mar 06 #PHP
详解PHP多个进程配合redis的有序集合实现大文件去重
Mar 06 #PHP
一次因composer错误使用引发的问题与解决
Mar 06 #PHP
利用PHP如何统计Nginx日志的User Agent数据
Mar 06 #PHP
浅谈php://filter的妙用
Mar 05 #PHP
You might like
实现dedecms全站URL静态化改造的代码
2007/03/29 PHP
php foreach正序倒序输出示例代码
2014/07/01 PHP
PHP实现的简单mock json脚本分享
2015/02/10 PHP
Codeigniter的dom类用法实例
2015/06/26 PHP
PHP 将dataurl转成图片image方法总结
2016/10/14 PHP
php版阿里云OSS图片上传类详解
2016/12/01 PHP
PHP中cookie知识点学习
2018/05/06 PHP
PHP命名空间(namespace)原理与用法详解
2019/12/11 PHP
Js event事件在IE、FF兼容性问题
2011/01/01 Javascript
如何将一个String和多个String值进行比较思路分析
2013/04/22 Javascript
ff chrome和ie下全局动态定位的异同及全局高度的取法
2014/06/30 Javascript
Redis基本知识、安装、部署、配置笔记
2015/03/05 Javascript
JavaScript encodeURI 和encodeURIComponent
2015/12/04 Javascript
jQuery中的Deferred和promise 的区别
2016/04/03 Javascript
javascript实现粘贴qq截图功能(clipboardData)
2016/05/29 Javascript
通过一个简单的例子学会vuex与模块化
2017/11/22 Javascript
vue中改变选中当前项的显示隐藏或者状态的实现方法
2018/02/08 Javascript
Python中的深拷贝和浅拷贝详解
2015/06/03 Python
Python的Scrapy爬虫框架简单学习笔记
2016/01/20 Python
python得到qq句柄,并显示在前台的方法
2018/10/14 Python
Django 全局的static和templates的使用详解
2019/07/19 Python
python hashlib加密实现代码
2019/10/17 Python
python3常用的数据清洗方法(小结)
2019/10/31 Python
python实现猜拳游戏
2020/03/04 Python
20行Python代码实现视频字符化功能
2020/04/13 Python
详解python爬取弹幕与数据分析
2020/11/14 Python
电子信息毕业生自荐信
2013/11/16 职场文书
教学大赛获奖感言
2014/01/15 职场文书
电大毕业自我鉴定
2014/02/03 职场文书
餐厅筹备计划书
2014/04/25 职场文书
优秀求职信
2014/05/29 职场文书
有限责任公司股东合作协议书范本
2014/10/30 职场文书
2015年学生会工作总结范文
2015/03/31 职场文书
财务部岗位职责范本
2015/04/14 职场文书
蔬果开业典礼发言稿应该怎么写?
2019/09/03 职场文书
python实现Thrift服务端的方法
2021/04/20 Python