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+MSSQL分页的例子
Oct 09 PHP
windows xp下安装pear
Dec 02 PHP
php cookie 登录验证示例代码
Mar 16 PHP
PHP MYSQL乱码问题,使用SET NAMES utf8校正
Nov 30 PHP
PHP实现多条件查询实例代码
Jul 17 PHP
关于mysql字符集设置了character_set_client=binary 在gbk情况下会出现表描述是乱码的情况
Jan 06 PHP
解析php中array_merge与array+array的区别
Jun 21 PHP
PHP使用正则表达式清除超链接文本
Nov 12 PHP
PHP类的声明与实例化及构造方法与析构方法详解
Jan 26 PHP
thinkphp3.x中cookie方法的用法分析
May 19 PHP
Laravel如何自定义command命令浅析
Mar 23 PHP
解决php用mysql方式连接数据库出现Deprecated报错问题
Dec 25 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 smarty模版引擎中的缓存应用
2009/12/02 PHP
php下正则来匹配dede模板标签的代码
2010/08/21 PHP
解析Win7 XAMPP apache无法启动的问题
2013/06/26 PHP
PHP解码unicode编码的中文字符代码分享
2014/08/13 PHP
Yii入门教程之Yii安装及hello world
2014/11/25 PHP
[原创]PHP获取数组表示的路径方法分析【数组转字符串】
2017/09/01 PHP
JS实现打开本地文件或文件夹
2021/03/09 Javascript
js自动下载文件到本地的实现代码
2013/04/28 Javascript
javascript版2048小游戏
2015/03/18 Javascript
javascript实现tab切换特效
2015/11/12 Javascript
JS模仿手机端九宫格登录功能实现代码
2016/04/28 Javascript
angularjs 表单密码验证自定义指令实现代码
2016/10/27 Javascript
React Router基础使用
2017/01/17 Javascript
AngularJs 利用百度地图API 定位当前位置 获取地址信息
2017/01/18 Javascript
jquery.flot.js简单绘制折线图用法示例
2017/03/13 Javascript
jQuery ajax请求struts action实现异步刷新
2017/04/19 jQuery
深入浅析JavaScript中的RegExp对象
2017/09/18 Javascript
发布一款npm包帮助理解npm的使用
2019/01/03 Javascript
Vue CLI 2.x搭建vue(目录最全分析)
2019/02/27 Javascript
使用Python编写类UNIX系统的命令行工具的教程
2015/04/15 Python
Python中的连接符(+、+=)示例详解
2017/01/13 Python
matplotlib实现显示伪彩色图像及色度条
2019/12/07 Python
解决python-docx打包之后找不到default.docx的问题
2020/02/13 Python
Mio Skincare美国官网:身体紧致及孕期身体护理
2017/03/05 全球购物
Ray-Ban雷朋奥地利官网:全球领先的太阳眼镜品牌
2020/10/12 全球购物
控制工程专业个人求职信
2013/09/25 职场文书
医学生自荐信范文
2013/12/03 职场文书
会计找工作求职信范文
2013/12/09 职场文书
委托证明的格式
2014/01/10 职场文书
房屋转让协议书
2014/04/11 职场文书
物流专业自荐信
2014/05/23 职场文书
医德医魂心得体会
2014/09/11 职场文书
单位租房协议书样本
2014/10/30 职场文书
订货会邀请函
2015/01/31 职场文书
Apache Hudi的多版本清理服务彻底讲解
2022/03/31 Servers
关于python3 opencv 图像二值化的问题(cv2.adaptiveThreshold函数)
2022/04/04 Python