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 相关文章推荐
珊瑚虫IP库浅析
Feb 15 PHP
PHP常用函数小技巧
Sep 11 PHP
PHP文章按日期(月日)SQL归档语句
Nov 29 PHP
php集成套件服务器xampp安装使用教程(适合第一次玩PHP的新手)
Jun 03 PHP
PHP多维数组遍历方法(2种实现方法)
Dec 10 PHP
thinkphp实现163、QQ邮箱收发邮件的方法
Dec 18 PHP
php中的登陆login实例代码
Jun 20 PHP
php微信公众号开发(2)百度BAE搭建和数据库使用
Dec 15 PHP
laravel5.4利用163邮箱发送邮件的步骤详解
Sep 22 PHP
php字符串截取函数mb_substr用法实例分析
Jun 25 PHP
tp5.1 实现setInc字段自动加1
Oct 18 PHP
php连接mysql之mysql_connect()与mysqli_connect()的区别
Jul 19 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
用PHP制作静态网站的模板框架(三)
2006/10/09 PHP
ThinkPHP调用common/common.php函数提示错误function undefined的解决方法
2014/08/25 PHP
php绘图之生成饼状图的方法
2015/01/24 PHP
PHP rsa加密解密使用方法
2015/04/27 PHP
PHP中字符串长度的截取用法示例
2017/01/12 PHP
PHP convert_cyr_string()函数讲解
2019/02/13 PHP
JavaScript 私有成员分析
2009/01/13 Javascript
Javascript 函数对象的多重身份
2009/06/28 Javascript
jquery插件开发之实现md5插件
2014/03/17 Javascript
jquery form 加载数据示例
2014/04/21 Javascript
深入理解JavaScript系列(30):设计模式之外观模式详解
2015/03/03 Javascript
js实现基于正则表达式的轻量提示插件
2015/08/29 Javascript
超赞的jQuery图片滑块动画特效代码汇总
2016/01/25 Javascript
WEB前端开发框架Bootstrap3 VS Foundation5
2016/05/16 Javascript
基于JavaScript实现购物网站商品放大镜效果
2016/09/06 Javascript
基于jQuery和Bootstrap框架实现仿知乎前端动态列表效果
2016/11/09 Javascript
利用JS测试目标网站的打开响应速度
2017/12/01 Javascript
Vue请求JSON Server服务器数据的实现方法
2018/11/02 Javascript
细说webpack6 Babel的使用详解
2019/09/26 Javascript
原生JS实现烟花效果
2020/03/10 Javascript
Python中Continue语句的用法的举例详解
2015/05/14 Python
Python 中字符串拼接的多种方法
2018/07/30 Python
Linux 修改Python命令的方法示例
2018/12/03 Python
Python multiprocessing多进程原理与应用示例
2019/02/28 Python
python 求定积分和不定积分示例
2019/11/20 Python
matplotlib实现显示伪彩色图像及色度条
2019/12/07 Python
Python实现随机生成任意数量车牌号
2020/01/21 Python
Keras自定义实现带masking的meanpooling层方式
2020/06/16 Python
Pytorch 高效使用GPU的操作
2020/06/27 Python
Python基础教程之输入输出和运算符
2020/07/26 Python
Python使用shutil模块实现文件拷贝
2020/07/31 Python
澳大利亚制造的蜡烛和扩散器:Glasshouse Fragrances
2018/05/20 全球购物
防沙治沙典型材料
2014/05/07 职场文书
2014年预备党员学习新党章思想汇报
2014/09/15 职场文书
图解上海144收音机
2021/04/22 无线电
浅谈Go语言多态的实现与interface使用
2021/06/16 Golang