您的位置:首页 > 其它

敏感词过滤

2017-07-21 11:42 381 查看
为了净化网络环境,我们很多公司都会要求对敏感词汇在文章中进行过滤。

这里介绍下敏感词过滤方式。

// ‘为什么’ ‘上学’ ‘爱劳动’ 是敏感词 将敏感词变成*
$str = "太阳当空照花儿对我笑 小鸟说早早早 你为什么背上小书包 我要上学校天天不迟到 爱学习爱劳动 长大要为人民立功劳";

$sensitiveWords = array('为什么', '上学', '爱劳动');
echo str_replace($sensitiveWords, array_fill(0, count($sensitiveWords), '**'), $str);这个用的是str_replace 虽然能解决问题,但是效率低下。

下面介绍一个性能相对不错的做法(性能大概比str_replace高4倍左右)

// ‘为什么’ ‘上学’ ‘爱劳动’ 是敏感词 将敏感词变成*
$str = "太阳当空照花儿对我笑 小鸟说早早早 你为什么背上小书包 我要上学校天天不迟到 爱学习爱劳动 长大要为人民立功劳";

$sensitiveWords = array('为什么', '上学', '爱劳动');
echo strtr($str, array_combine($sensitiveWords, array_fill(0, count($sensitiveWords), '**')));
这种主要依赖strtr函数。

下面介绍下本专题中用到的函数:

1、创建一个数组,用一个数组的值作为其键名,另一个数组的值作为其值    array_combine

2、用给定的值填充数组
array_fill

3、子字符串替换  str_replace

4、转换指定字符  strtr

以上是真的敏感词过滤的一些个人的解决方案。在这个开源的时代,自己写的很少了,上面内容也就是帮助大家理解而已。第三方服务为我们提供了强大的过滤服务,直接引用就好。具体服务很多,比如网易的(不是广告

)。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息