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 相关文章推荐
文件上传的实现
Oct 09 PHP
php 中include()与require()的对比
Oct 09 PHP
php中支持多种编码的中文字符串截取函数!
Mar 20 PHP
学习使用curl采集curl使用方法
Jan 11 PHP
关于PHP结束标签的使用细节探讨及联想
Mar 04 PHP
Php header()函数语法及使用代码
Nov 04 PHP
PHP中使用php://input处理相同name值的表单数据
Feb 03 PHP
php实现用已经过去多长时间的方式显示时间
Jun 05 PHP
yii2带搜索功能的下拉框实例详解
May 12 PHP
PHP中如何判断exec函数执行成功?
Aug 04 PHP
php is_writable判断文件是否可写实例代码
Oct 13 PHP
laravel使用Faker数据填充的实现方法
Apr 12 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
WebQQ最新登陆协议的用法
2014/12/22 PHP
php读取文件内容的方法汇总
2015/01/24 PHP
为你总结一些php信息函数
2015/10/21 PHP
CakePHP框架Model函数定义方法示例
2017/08/04 PHP
PHP7原生MySQL数据库操作实现代码
2020/07/03 PHP
新老版本juqery获取radio对象的方法
2010/03/01 Javascript
JQuery实现table行折叠效果以JSON做数据源
2014/05/26 Javascript
jQuery选择器源码解读(三):tokenize方法
2015/03/31 Javascript
JavaScript的9种继承实现方式归纳
2015/05/18 Javascript
JS制作手机端自适应缩放显示
2015/06/11 Javascript
利用jQuery实现CheckBox全选/全不选/反选的简单代码
2016/05/31 Javascript
详解基于webpack搭建react运行环境
2017/06/01 Javascript
JQuery判断正整数整理小结
2017/08/21 jQuery
用vue构建多页面应用的示例代码
2017/09/20 Javascript
原生js实现简单的焦点图效果实例
2017/12/14 Javascript
监控Nodejs的性能实例代码
2019/07/02 NodeJs
mpvue 项目初始化及实现授权登录的实现方法
2020/07/20 Javascript
[02:28]DOTA2英雄基础教程 狼人
2013/12/23 DOTA
使用Python读写及压缩和解压缩文件的示例
2016/07/08 Python
Python图片裁剪实例代码(如头像裁剪)
2017/06/21 Python
安装python时MySQLdb报错的问题描述及解决方法
2018/03/20 Python
python 创建一个空dataframe 然后添加行数据的实例
2018/06/07 Python
python正则表达式去除两个特殊字符间的内容方法
2018/12/24 Python
eclipse创建python项目步骤详解
2019/05/10 Python
django和vue实现数据交互的方法
2019/08/21 Python
Python使用百度api做人脸对比的方法
2019/08/28 Python
Python实现汇率转换操作
2020/05/03 Python
Python-jenkins模块获取jobs的执行状态操作
2020/05/12 Python
美国最大的万圣节服装网站:HalloweenCostumes.com
2017/10/12 全球购物
运动会广播稿100字
2014/01/11 职场文书
入党积极分子学习两会心得体会范文
2014/03/17 职场文书
公务员上班玩游戏检讨书
2014/09/17 职场文书
2014县委书记党的群众路线教育实践活动对照检查材料思想汇报
2014/09/22 职场文书
2015年机关纠风工作总结
2015/05/15 职场文书
推广普通话主题班会
2015/08/17 职场文书
《赵州桥》教学反思
2016/02/17 职场文书