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

田大星T

田大星T

2016-01-29 15:00

如何过滤高亮显示非法字符,如何过滤高亮显示非法字符
  <?
//我只是做一个测试,如果再用类似tmd的字符串,一定要注意,如果字符串中的字符出现在$StartReplaceHtml或者$EndReplaceHtml中,你需要修改下面的preg_replace中的规则
$CheckedMessage="Hello!!他X的..他....X...的....How are you m d ";     //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设置成false
     }
     if($CheckOther == true){
         $CharStringLength = strlen($CheckedWords[$i]);
         for($j=0;$j<$CharStringLength;$j++){
             $AssumeLength=1;//假定截取长度
             if(ord(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 $CheckedMessage;
//只是一个简单的测试,希望对你有所帮助,希望你能举一反三,好运!

?
 
展开更多 50%)
分享

猜你喜欢

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

PHP
如何过滤高亮显示非法字符

将多个字符串高亮显示之TTTAttributedLabel

编程语言 网络编程
将多个字符串高亮显示之TTTAttributedLabel

s8lol主宰符文怎么配

英雄联盟 网络游戏
s8lol主宰符文怎么配

请问如何在vi中做到高亮显示?

Linux Linux命令 Linux安装 Linux编程 Linux桌面 Linux软件 Linux内核 Linux管理
请问如何在vi中做到高亮显示?

在Excel 2010中如何高亮显示重复值

电脑入门
在Excel 2010中如何高亮显示重复值

lol偷钱流符文搭配推荐

英雄联盟 网络游戏
lol偷钱流符文搭配推荐

在Excel 2024中如何高亮显示重复值

excel
在Excel 2024中如何高亮显示重复值

如何设置cygwin控制台字体高亮显示?

Linux Linux命令 Linux安装 Linux编程 Linux桌面 Linux软件 Linux内核 Linux管理
如何设置cygwin控制台字体高亮显示?

lolAD刺客新符文搭配推荐

英雄联盟
lolAD刺客新符文搭配推荐

《混沌之戒2》攻略 主线剧情和经验心得分享

《混沌之戒2》攻略 主线剧情和经验心得分享

使用PHP模拟HTTP认证

使用PHP模拟HTTP认证
下拉加载更多内容 ↓