您当前的位置:首页 > 电脑百科 > 程序开发 > 语言 > php

PHP:实现敏感词过滤的方法

时间:2019-09-06 09:46:00  来源:  作者:

php实现的敏感词过滤方法,你们有好的编码和好的实现方法吗,可以发出来一起交流一下。以下是一份过滤敏感词的编码。有需要偶读可以参考参考。

敏感词的过滤方法

/**
 * @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;
}

调用方法

function testAction(){
 $string = 'likeyou小白喜欢小黑爱着的大黄'; //要过滤的内容
 $list = ['小明', '小红', '大白', '小白', '小黑', 'me', 'you']; //定义敏感词数组
 $result = $this->sensitive($list, $string);
 echo ($result);
 die;
 //打印结果:
 /*
 原句为 [ likeyou小白喜欢小黑爱着的大黄 ]
 匹配到 [ 3 ]个敏感词:[ you,小白,小黑 ]
 替换后为:[ like**喜欢*爱着的大黄 ]
 */
}

大家有别的方法,不妨留言,一起交流一下



Tags:PHP   点击:()  评论:()
声明:本站部分内容来自互联网,转载是出于传递更多信息之目的,内容观点仅代表作者本人,如有任何标注错误或版权侵犯请与我们联系,我们将及时更正、删除,谢谢。
▌相关评论
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表
▌相关推荐
PHP 8,PHP 的一个新的大版本,预计将于2020年12月3日发布,这意味着将不会有 PHP 7.5 版本。PHP8目前正处于非常活跃的开发阶段,所以在接下来的几个月里,情况可能会发生很大的变化...【详细内容】
2020-07-06   PHP  点击:(1)  评论:(0)  加入收藏
引言之前的文章我们已经讲过,在 PHP 类的创建过程中,使用 self 作为类本身的引用,使用 $this 作为类对象的引用。 而在 self 和 static 的使用上,有着细微的差别。特别是类继承...【详细内容】
2020-07-05   PHP  点击:(0)  评论:(0)  加入收藏
用任何编程语言来开发程序,都是为了让计算机干活,比如编写一篇文章,下载一首MP3等,而计算机干活的CPU只认识机器的指令,所以,尽管不同的编程语言差异极大,最后都得“翻译”成CPU可...【详细内容】
2020-06-29   PHP  点击:(1)  评论:(0)  加入收藏
对于php开发小白来说搭建一个php运行环境就是一道坎!因为要做php开发,搭建一个能够运行php网站的服务器环境是第一步,传统的php环境软件非常复杂,好在很多公司开发了一键搭建php...【详细内容】
2020-06-26   PHP  点击:(4)  评论:(0)  加入收藏
根据Alexa最新调查数据显示,服务器端编程语言的所有网站中,有79.0%使用PHP,使用PHP的所有网站中有52.8%使用了版本PHP7以上,当然稳定的版本PHP5依然有在所有php网站中占46.9%以上。...【详细内容】
2020-06-24   PHP  点击:(1)  评论:(0)  加入收藏
只想简单的做个带几个路由的服务,用 PHP 框架就有点大题小作了。Klein.php,这个轻量级的路由库,此时是一个不错的选择。Klein.php简介Klein.php,是 klein 组织在 Github 上开源...【详细内容】
2020-06-16   PHP  点击:(2)  评论:(0)  加入收藏
在这篇文章中,小编要给您推荐的是这款内置集成环境的软件,phpstudy。有些人一看到这个是国产的集成环境软件,心里就过不去,但是小编想说的是,不要因为他是国产软件就直接否定他,实...【详细内容】
2020-06-09   PHP  点击:(5)  评论:(0)  加入收藏
phpMyAdmin是一个非常受欢迎的基于web的MySQL数据库管理工具。它能够创建和删除数据库,创建/删除/修改表格,删除/编辑/新增字段,执行SQL脚本等,phpmyadmin也就相当于一个mysql...【详细内容】
2020-05-30   PHP  点击:(4)  评论:(0)  加入收藏
什么是连接池?顾名思义,连接池就是一堆预先创建好的连接,跟容器会有点像。连接池主要是在某种需要网络连接的服务,提前把连接建立好存起来,然后存放在一个池子里面,需要用到的时候...【详细内容】
2020-05-29   PHP  点击:(1)  评论:(0)  加入收藏
安装#进入安装目录cd /usr/local/bin#下载并安装sudo curl -s https://getcomposer.org/installer | sudo php#添加执行权限sudo chmod a+x composer.phar#加入全局命令mv...【详细内容】
2020-05-25   PHP  点击:(3)  评论:(0)  加入收藏
soap协议这个古老的通过wsdl文件通讯的协议,使用极其不方便,但是还有一些顽固的国企在使用,没办法,有一些需求必须跟他们对接接口,怎么办呢,在使用soap协议调用时候,php在这方面资...【详细内容】
2020-05-16   PHP  点击:(1)  评论:(0)  加入收藏
PHP与MySQL的连接有三种API接口,分别是:PHP的MySQL扩展 、PHP的mysqli扩展 、PHP数据对象(PDO) 。下面针对以上三种连接方式做下总结,以备在不同场景下选出最优方案。PHP的MySQ...【详细内容】
2020-05-14   PHP  点击:(4)  评论:(0)  加入收藏
1 尽量静态化如果一个方法能被静态,那就声明它为静态的,速度可提高1/4,甚至我测试的时候,这个提高了近三倍。当然了,这个测试方法需要在十万级以上次执行,效果才明显。其实静态方...【详细内容】
2020-05-13   PHP  点击:(2)  评论:(0)  加入收藏
1. 将MySQL安装压缩包解压,将解压后的文件夹移动到安装目录下,比如示例中将mysql-5.7.24-winx64.zip解压后的文件夹重命名为mysql,并移动到C:\Program Files下 2. 右击“此电脑...【详细内容】
2020-05-12   PHP  点击:(3)  评论:(0)  加入收藏
环境: 1、系统:Centos 7 2、Tengine 2.1.2 3、PHP 7.0 4、Mysql 5.7 5、supervisord 6、redis一、安装依赖包yum udateyum -y install gcc gcc-c++ autoconf automakeyum -y i...【详细内容】
2020-05-12   PHP  点击:(13)  评论:(0)  加入收藏
事务(Transaction)是访问并可能更新数据库中各种数据项的一个程序执行单元;事务的ACID特性事务应该具有4个属性:原子性、一致性、隔离性、持续性原子性(atomicity)。一个事务是...【详细内容】
2020-05-12   PHP  点击:(8)  评论:(0)  加入收藏
我从2012年开始学习如何使用HTML和CSS进行编码,自从我的编码之旅开始以来,PHP一直是我一直想学习的语言之一。 作为一个刚从JavaScript培训学校毕业的学生,我决定要重新尝试学...【详细内容】
2020-05-11   PHP  点击:(2)  评论:(0)  加入收藏
PHP-8将于今年年底发布,其最令人期待的功能之一就是JIT编译。让我们通过本文来看看这项功能对PHP脚本的速度有怎样的影响? 以下为译文:今年年底,PHP-8即将发布。虽然这个主版本...【详细内容】
2020-05-07   PHP  点击:(5)  评论:(0)  加入收藏
目录 概述 策略模式含义 策略模式的三种角色 策略模式实现步骤 策略模式设计代码实现 php7进阶到架构师相关阅读概述这是关于php进阶到架构之php7核心技术与实战学习的系列...【详细内容】
2020-05-07   PHP  点击:(1)  评论:(0)  加入收藏
我个人有一台阿里云的 ECS 服务器,平时用来测试的,前段时间 装过php7.2 是按照线上生产环境的步骤做的,只不过,生产环境不可能是一台一台手动安装的。我今天只是想把单台的安装...【详细内容】
2020-05-06   PHP  点击:(3)  评论:(0)  加入收藏
最新更新
栏目热门
栏目头条