正则表达式,又称规则表达式。(英语:Regular Expression,在代码中常简写为regex、regexp或RE),计算机科学的一个概念。正则表达式通常被用来检索、替换那些符合某个模式(规则)的文本。

本文讲述PHP实现的敏感词过滤方法,涉及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} ]
";

if($count==0){

$log .= "暂未匹配到敏感词!";

}else{

$log .= "匹配到 [ {$count} ]个敏感词:[ {$sensitiveWord} ]
".

"替换后为:[ {$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实现敏感词过滤相关推荐

  1. php+mysql防注入字符串过滤_php 防sql注入过滤代码

    我们提供了三个函数不来过滤一些特殊的字符,主要是利用php把sql敏感字符串给过滤掉了,好了下面来看看这款代码吧,有需要的朋友拿去看看,实例代码如下: function phpsql_show($st ...

  2. php敏感字符串过滤_PHP实现的敏感词过滤方法示例

    本文实例讲述了PHP实现的敏感词过滤方法.分享给大家供大家参考,具体如下: 1.敏感词过滤方法 /** * @todo 敏感词过滤,返回结果 * @param array $list 定义敏感词一维数 ...

  3. php敏感字符串过滤_PHP实现的敏感词过滤方法

    PHP实现的敏感词过滤方法,以下是一份过滤敏感词的编码.有需要可以参考参考. /** * @todo 敏感词过滤,返回结果 * @param array $list 定义敏感词一维数组 * @para ...

  4. 字符串匹配算法 -- AC自动机 基于Trie树的高效的敏感词过滤算法

    文章目录 1. 算法背景 2. AC自动机实现原理 2.1 构建失败指针 2.2 依赖失败指针过滤敏感词 3. 复杂度及完整代码 1. 算法背景 之前介绍过单模式串匹配的高效算法:BM和KMP 以及 ...

  5. php返回当前字符串把所有敏感词变红,PHP 实现敏感词 / 停止词 过滤(附敏感词库)...

    敏感词.文字过滤是一个网站必不可少的功能,如何设计一个好的.高效的过滤算法是非常有必要的.在实现敏感词过滤的算法中,我们必须要减少运算,而 DFA 在 DFA 算法中几乎没有什么计算,有的只是状态的转 ...

  6. mysql 敏感词_PHP实现的敏感词过滤方法示例

    本文实例讲述了PHP实现的敏感词过滤方法.分享给大家供大家参考,具体如下: 1.敏感词过滤方法 /** * @todo 敏感词过滤,返回结果 * @param array $list 定义敏感词一维数 ...

  7. 敏感词过滤,PHP实现的Trie树

    [转载]敏感词过滤,PHP实现的Trie树 原文地址:http://blog.11034.org/2012-07/trie_in_php.html 项目需求,要做敏感词过滤,对于敏感词本身就是一个CR ...

  8. Java实现敏感词过滤 - IKAnalyzer中文分词工具

    IKAnalyzer 是一个开源的,基于java语言开发的轻量级的中文分词工具包. 官网: https://code.google.com/archive/p/ik-analyzer/ 本用例借助 I ...

  9. python中哪些词是敏感字词_python实现敏感词过滤的几种方法

    1.replace过滤 最简单也是最直接的就是直接循环敏感词,然后使用replace过滤关键词,文章和敏感词少的时候还可以,多的时候效率就真的很一般了. 2.使用正则过滤 有两个技术要点, 1.使用P ...

最新文章

  1. 2840 页的计算机毕业论文,这位华人小哥的博士论文究竟写了啥?
  2. linux运维、架构之路-MySQL(一)
  3. 在基于简单Vertx Rest的应用程序上为REST资源设置基本响应HTTP标头
  4. Linux系统编程---11(会话,守护进程,创建守护进程)
  5. [嵌入式]Ubuntu下mini2440的环境搭建-截图记录-转
  6. mongodb objectid java_我可以确定字符串是否是MongoDB ObjectID吗?
  7. 深度学习超参数简单理解:learning rate,weight decay和momentum
  8. C#字节数组的常用解码处理方法
  9. 【2019徐州网络赛:M】Longest subsequence(思维+构造)
  10. 智慧园区中心服务平台建议方案
  11. 使用 AppFuse 的七个理由学习
  12. Webservice接口调用工具类
  13. 401. 二进制手表
  14. 【C++】C++11 新特性
  15. Java---设计【运动会成绩管理系统】
  16. 惊!一文看懂Java NIO读写文件
  17. Python 机器学习 | 超参数优化 黑盒(Black-Box)非凸优化技术实践
  18. dds:core:policy
  19. 微信小程序版狼人杀+服务端系列(1)
  20. 函隐式声明函数是什么意思

热门文章

  1. 游戏画质提升1《X战警金刚狼前传》画质增强修改
  2. 鹏业安装三维算量软件——批量修改工程量
  3. java 串口 中文乱码_Java 实现 POS 打印机无驱串口打印(解决中文乱码)
  4. Wine-Staging 5.6 修补游戏补丁
  5. 小程序scroll-view,滚动到最低_小程序滚动到底部
  6. 数据类型的基本功能(一)
  7. 轻松完美-实现ECharts双Y轴左右刻度线一致
  8. ol3 结构图 仅限ol.source.Source
  9. android圆环头像,Android实现带圆环的圆形头像
  10. 悠悠web(1)-HTML基本结构