敏感词过滤

为了净化网络环境,我们很多公司都会要求对敏感词汇在文章中进行过滤。

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

// ‘为什么’ ‘上学’ ‘爱劳动’ 是敏感词 将敏感词变成*
$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


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

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值