<?
//我只是做一个测试,如果再用类似tmd的字符串,一定要注意,如果字符串中的字符出现在$startreplacehtml或者$endreplacehtml中,你需要修改下面的preg_replace中的规则
$checkedmessage=”hello!!他x的..他….x…的….how are you m d costs“;//the message to be checked
echo $checkedmessage.”<br>”;
$checkedwords=array(“他x的”,”tmd”);//要过滤的非法字符,如果你需要把单个的字符也过滤,比如:他ererx000的过滤出来他,x,的,你就没必要把过滤字符设置成”他x的”只要设置成$checkedwords=array(“他”,”x”,”的”);就可以了
$startreplacehtml=”<u><b><font color=’#ff0000′>”;
$endreplacehtml=”</font></b></u>”;
$checkother= true;//设置标示位,是否显示单个的字符,如果设禾富酒庄置成true,下面的if(strstr……)就不需要了
for($i=0;$i<count($checkedwords);$i++){
if(strstr($checkedmessage,$checkedwords[$i])){ //此处可去掉
$checkedmessage=eregi_replace($checkedwords[$i],$startreplacehtml.$checkedwords[$i].$endreplacehtml,$checkedmessage);//如果只过滤诸如”他x的”字符串(是字符串,不是单个字符),可以直接写这句,同时把$checkother设置成fal
}
if($checkother == true){
$charstringlength = strlen($checkedwords[$i]);
for($j=0;$j<$charstringlength;$j++){
$assumelength=1;//假定截取长度
if(ordspring festival手抄报(substr($checkedwords[$i],$j,$assumelength))>0xa0){//如果汉字,假定长度加一
$assumelength++;
}
$substrchar = substr($checkedwords[$i],$j,$assumelength);
$checkedmessage=preg_replace(“/(?<!fon)”.$substrchar.”/”,$startreplacehtml.$substrchar.$endreplacehtml,$checkedmessage);//替换字符,同时如果字符含有t的时候<font>中的t不会被替换,如果需要过滤掉在$startreplace或者在$endreplacehtml中的的字符,需要修改规内燃机的发明则,否则的话将会出现乱码
if($assumelength!=1){//如果当前截取字符为汉字
$j++;
}
}
}
}
echo $che百度提取码ckedmessage;
//只是一个简单的测试,希望对你有所帮助,希望你能举一反三,好运!
?>
本文发布于:2023-04-06 06:44:53,感谢您对本站的认可!
本文链接:https://www.wtabcd.cn/fanwen/zuowen/4cdd66839fe405de47fd96d0b3b87c8c.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文word下载地址:如何过滤高亮显示非法字符.doc
本文 PDF 下载地址:如何过滤高亮显示非法字符.pdf
留言与评论(共有 0 条评论) |