一个高效的敏感词过滤方法(PHP)

效率对比(12688个字符,替换1次): 
  • str_replace: 0.109937906265秒
  • strtr: 0.0306839942932秒

替换结果对比 
  • 比如:「张三」、「张三丰」、「张三丰田」 均为违禁词 (为何会有这样的区分?请参见 「法X」、「法Xgong」) 
  • 原文:「我今天开着张三丰田去上班 」 
  • strtr:「我今天开着****去上班 」(四个词均替换为了*) 
  • str_replace:「我今天开着**丰田去上班 」(仅仅替换了第一个匹配项) 
所以使用str_replace替换,是不能本质上解决问题。


时间对比:
关键词数量:6712 (无重复)
<?php
$badword = array( '张三','张三丰','张三丰田');
?>

测试文件 demo.php
<?php
require('badword.php');
$badword1 =array_combine($badword,array_fill(0,count($badword),'*'));
$bb = '我今天开着张三丰田上班';
$str = strtr($bb,$badword1);
echo $str;
?>



测试结果:我今天开着*上班
分析:strtr函数比str_replace和正则的效率高。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值