php敏感关键字判断

49 views
Skip to first unread message

情戈待寂

unread,
Nov 18, 2009, 5:02:40 AM11/18/09
to 随心微博指定官方论坛
php敏感关键字判断

判断某段文字里面是否包含某字符串或某些字符串,可以通过preg_match来判断,对于留言薄或者论坛来说,可以判断是否包含某些敏感关键字,来决
定是否过滤,是否允许发表

各敏感词之间用符号 “|"分割,因为在正则里面 "|"相当于"或"的意思
<?php

$badkey = "敏感词|敏感词B|敏感词C";

$string = "我是不含有敏感词的,我要发表";

if(preg_match("/$badkey/i",$string)){

echo "对不起,含有含有敏感字符,不允许发表";

}else{

//do something...

}

?>

而preg_replace则可以用来进行 关键词过滤(脏话过滤)
使用同preg_match差不多,见
http://www.dayanmei.com/blog.php/ID_657.htm
-----------------------------------------------------
判断用户提交的信息中是否含敏感字符的PHP代码!

本站的www.chjia.com/dy/ 因含极少的敏感关键字而被某公安机关认为是营网站而被迫关闭,
因此,我觉得有必要对网页的内容和网友提交的信息进行过滤.
特写了以下代码,相信对大家有点帮助:
<?php
$noaaa ="敏感的字符1| 敏感的字符2| 敏感的字符3| 敏感的字符4| 敏感的字符5|……|" ;//敏感的字符屏蔽数组
if(!ereg($noaaa,$_REQUEST[kw]))
{
echo "好!";}
else{ echo "有敏感的字符~!";
exit;}
?>
---------------------------------------------
过滤敏感字符串的模块
代码是php,数据库mysql

给定一个字符串s,过滤掉敏感字符串变成s2,其中敏感字符串改成*号显示

除了提供代码,还要有个敏感字符串的库。

举例如下:
s="马上去你~#老)_妈^A的";
"你老妈"存在于敏感字符串库中,所以s2应该="马上去*~#*)_*^A的";


这个对原来系统的改动可要大了,不仅仅是加个插件、加个模块那么简单,建个库很容易,关键是过滤的机制怎么实现。是准备在信息提交的时候进行过滤,还是
直接存入数据库,等读取出来的时候再过滤?这样的话对你原来系统的信息提交和信息读取部分就要做改动。
或者还有另一个办法,就是在信息审核的时候,先运行一下这个过滤插件,将所有未审核的信息读出、过滤一遍、再重新写入数据库,然后再进入审核的流程,这
个应该比较简单,不会对原系统有很大改动,推荐这个,不过可能需要人工进行,不像上面的方法在信息提交或读取的时候自动过滤。

加一段代码就可以了...

Reply all
Reply to author
Forward
0 new messages