php敏感字符串过滤_PHP实现敏感词过滤

php敏感字符串过滤_PHP实现敏感词过滤正则表达式,又称规则表达式。(英语:RegularExpression,在代码中常简写为regex、regexp或RE),计算机科学的一个概念。正则表达式通常被用来检索、替换那些符合某个模式(规则)的文本。本文讲述PHP实现的敏感词过滤方法,涉及php字符串正则匹配、分割、转换等相关操作技巧1、敏感词过滤方法/***@todo敏感词过滤,返回结果*@paramarray$list定义…

大家好,欢迎来到IT知识分享网。php敏感字符串过滤_PHP实现敏感词过滤

正则表达式,又称规则表达式。(英语: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**喜欢*爱着的大黄 ]

*/

}

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://yundeesoft.com/13003.html

(0)
上一篇 2024-03-07 19:15
下一篇 2024-03-10 10:15

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注微信