您好,欢迎访问一九零五行业门户网

如何过滤高亮显示非法字符_PHP教程

//我只是做一个测试,如果再用类似tmd的字符串,一定要注意,如果字符串中的字符出现在$startreplacehtml或者$endreplacehtml中,你需要修改下面的preg_replace中的规则
$checkedmessage=hello!!他x的..他....x...的....how are you m d ;     //the message to be checked
echo $checkedmessage.
;
$checkedwords=array(他x的,tmd);//要过滤的非法字符,如果你需要把单个的字符也过滤,比如:他ererx000的过滤出来他,x,的,你就没必要把过滤字符设置成他x的只要设置成$checkedwords=array(他,x,的);就可以了
$startreplacehtml=;
$endreplacehtml=;
$checkother= true;//设置标示位,是否显示单个的字符,如果设置成true,下面的if(strstr……)就不需要了
for($i=0;$i     if(strstr($checkedmessage,$checkedwords[$i])){ //此处可去掉
         $checkedmessage=eregi_replace($checkedwords[$i],$startreplacehtml.$checkedwords[$i].$endreplacehtml,$checkedmessage);//如果只过滤诸如他x的字符串(是字符串,不是单个字符),可以直接写这句,同时把$checkother设置成false
     }
     if($checkother == true){
         $charstringlength = strlen($checkedwords[$i]);
         for($j=0;$j             $assumelength=1;//假定截取长度
             if(ord(substr($checkedwords[$i],$j,$assumelength))>0xa0){//如果汉字,假定长度加一
                $assumelength++;         
             }
             $substrchar = substr($checkedwords[$i],$j,$assumelength);             
             $checkedmessage=preg_replace(/(?中的t不会被替换,如果需要过滤掉在$startreplace或者在$endreplacehtml中的的字符,需要修改规则,否则的话将会出现乱码             
             if($assumelength!=1){//如果当前截取字符为汉字
             $j++;        
             }
}
     }
}
echo $checkedmessage;
//只是一个简单的测试,希望对你有所帮助,希望你能举一反三,好运!
?>
http://www.bkjia.com/phpjc/314989.htmlwww.bkjia.comtruehttp://www.bkjia.com/phpjc/314989.htmltecharticle? //我只是做一个测试,如果再用类似tmd的字符串,一定要注意,如果字符串中的字符出现在$startreplacehtml或者$endreplacehtml中,你需要修改下...
其它类似信息

推荐信息