PHP实现敏感词过滤

发布时间:2024-05-21 点击:87
正则表达式,又称规则表达式。(英语: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} ]<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喜欢*爱着的大黄 ] */ }

腾讯云服务器怎么开发工具
icp备案变更否会像备案时一样复杂
定制网站一般多少钱?有何优势?
如何给主域名添加二级域名 二级域名的申请步骤有哪些
网站定做的流程是怎样的?网站定做的费用是多少?
你知道企业logo吗?如何设计一个企业logo
域名证书是什么意思?顶级域名证书有什么作用?
高防云服务器100g