概述
用过wordpress的朋友都应该经历过被机器恶意提交评论,而且还都是些不认识的外国文字,有心增加验证码又怕影响用户积极性,所以就给了别人作恶的机会。
那有没有不增加验证码,又能屏蔽大部分恶意评论的方法呢?答案肯定是有的,比如今天给大家介绍的一种通过正则来判断用户评论内容有没有中文,进而过滤掉外国的恶意评论。
代码如下:
复制
/* 评论验证中文 */ function refused_spam_comments( $comment_data ) { $pattern = '/[一-龥]/u'; if(!preg_match($pattern,$comment_data['comment_content'])) { err('评论必须含中文!'); } return( $comment_data ); } add_filter('preprocess_comment','refused_spam_comments');
其中的正则规则说明
复制
一-龥
在word中从一到龥表示几乎所有的汉字,当然也可以将规则改为其它匹配汉字的正则规则,效果是一样的。
说明
从上面的代码不难看出,在得到提交的评论内容后,用匹配汉字的正则去匹配,如果没有结果,那么就提示用户必须包含汉字,否则正常提交。
在此基础上,我们还可以屏蔽固定的内容,比如超链接、侮辱性词汇等等。
关注代码狗博客,我们一起进步。
评论 (0)