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 相关文章推荐
GD输出汉字的函数的分析
Oct 09 PHP
php 数组二分法查找函数代码
Feb 16 PHP
php is_file 判断给定文件名是否为一个正常的文件
May 10 PHP
PHP下使用CURL方式POST数据至API接口的代码
Feb 14 PHP
关于crontab的使用详解
Jun 24 PHP
php连接函数implode与分割explode的深入解析
Jun 26 PHP
2014过年倒计时示例
Jan 31 PHP
PHP与Java对比学习日期时间函数
Jul 03 PHP
PHP编辑器PhpStrom运行缓慢问题
Feb 21 PHP
thinkPHP框架实现的短信接口验证码功能示例
Jun 20 PHP
微信企业转账之入口类分装php代码
Oct 01 PHP
Laravel实现ApiToken认证请求
Oct 14 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
实用函数7
2007/11/08 PHP
PHP对字符串的递增运算分析
2010/08/08 PHP
解析link_mysql的php版
2013/06/30 PHP
PHP中ltrim与rtrim去除左右空格及特殊字符实例
2016/01/07 PHP
脚本收藏iframe
2006/07/21 Javascript
二级域名或跨域共享Cookies的实现方法
2008/08/07 Javascript
Javascript remove 自定义数组删除方法
2009/10/20 Javascript
Jquery submit()无法提交问题
2013/04/21 Javascript
js 通用订单代码
2013/12/23 Javascript
jquery缓动swing liner控制动画过程不同时刻的速度
2014/05/29 Javascript
JS实现简单路由器功能的方法
2015/05/27 Javascript
让JavaScript中setTimeout支持链式操作的方法
2015/06/19 Javascript
Javascript验证Visa和MasterCard信用卡号的方法
2015/07/27 Javascript
JS动态增删表格行的方法
2016/03/03 Javascript
angular分页指令操作
2017/01/09 Javascript
微信小程序中使用Promise进行异步流程处理的实例详解
2017/08/17 Javascript
关于JS与jQuery中的文档加载问题
2017/08/22 jQuery
微信小程序实现slideUp、slideDown滑动效果及点击空白隐藏功能示例
2018/12/11 Javascript
vuejs+element UI table表格中实现禁用部分复选框的方法
2019/09/20 Javascript
基于iview-admin实现动态路由的示例代码
2019/10/02 Javascript
微信小程序实现图片压缩
2019/12/03 Javascript
解决Vue-cli无法编译es6的问题
2020/10/30 Javascript
Mac OS X10.9安装的Python2.7升级Python3.3步骤详解
2013/12/04 Python
Python中基本的日期时间处理的学习教程
2015/10/16 Python
Python利用Beautiful Soup模块修改内容方法示例
2017/03/27 Python
python实现学生信息管理系统
2020/04/05 Python
从pandas一个单元格的字符串中提取字符串方式
2019/12/17 Python
python Shapely使用指南详解
2020/02/18 Python
出纳岗位职责
2013/11/09 职场文书
公务员培训心得体会
2013/12/28 职场文书
手机被没收检讨书
2014/02/22 职场文书
人力资源总监工作说明
2014/03/03 职场文书
销售内勤岗位职责
2014/04/15 职场文书
如何在CocosCreator里画个炫酷的雷达图
2021/04/16 Javascript
sql server 累计求和实现代码
2022/02/28 SQL Server
Mysql索引失效 数据库表中有索引还是查询很慢
2022/05/15 MySQL