php敏感词过滤-PHP过滤敏感词

1. 一般方法

function transgress_keyword($content){//定义处理违法关键字的方法
	$keyword = array ('明日', '编程', '图书', '软件' );//定义敏感词
	$m = 0;
	for($i = 0; $i  0) {
			$m ++;
		}
	}
	return $m;	//返回变量值,根据变量值判断是否存在敏感词
if (transgress_keyword($_POST[title])> 0 || transgress_keyword($_POST[content])> 0 ) {//判断返回值大于0说明包含敏感词
	echo "alert('您输入的内容中含有敏感词'); history.back();";
}

2、高效的方式

效率对比(12688个字符,1个替换):

php过滤微信表情符号_php敏感词过滤_php敏感词过滤类

str_replace: 0.109937906265 秒

strtr: 0.0306839942932 秒

php敏感词过滤_php敏感词过滤类_php过滤微信表情符号

替换结果对比

例如:“张三”、“张三丰”、“张三丰田”都是禁用词(为什么有这样的区别?请参见“法X”、“法X工”)

原文:《昨天我开着张三丰田下班》

strtr:“昨天我开车****下班”(四个字全部用*代替)

str_replace:“我昨天开着**福特下班”(仅替换第一场比赛)

所以用str_replace来替换并不能从本质上解决问题。

php敏感词过滤_php过滤微信表情符号_php敏感词过滤类

时间对比:

关键词数量:6712(不重复)


测试结果:我昨天开车*去上班

分析:strtr函数比str_replace和正则效率更高。