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


Posted in PHP onOctober 09, 2006

<?
//我只是做一个测试,如果再用类似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;
//只是一个简单的测试,希望对你有所帮助,希望你能举一反三,好运!

?>

PHP 相关文章推荐
PHP4实际应用经验篇(2)
Oct 09 PHP
如何使用脚本模仿登陆过程
Nov 22 PHP
php项目打包方法
Feb 18 PHP
php curl选项列表(超详细)
Jul 01 PHP
对PHP语言认识上需要避免的10大误区
Jun 12 PHP
Smarty变量调节器失效的解决办法
Aug 20 PHP
PHP面向对象程序设计之接口用法
Aug 20 PHP
php更新mysql后获取改变行数的方法
Dec 25 PHP
php metaphone()函数及php localeconv() 函数实例解析
May 15 PHP
PHP数据对象PDO操作技巧小结
Sep 27 PHP
PHP多维数组元素操作类的方法
Nov 14 PHP
PHP构造二叉树算法示例
Jun 21 PHP
无限级别菜单的实现
Oct 09 #PHP
综合图片计数器
Oct 09 #PHP
php,不用COM,生成excel文件
Oct 09 #PHP
PHP中GET变量的使用
Oct 09 #PHP
一个ORACLE分页程序,挺实用的.
Oct 09 #PHP
通过ICQ网关发送手机短信的PHP源程序
Oct 09 #PHP
搜索引擎技术核心揭密
Oct 09 #PHP
You might like
德劲1102收音机的打理维修案例
2021/03/02 无线电
php记录代码执行时间(实现代码)
2013/07/05 PHP
推荐一本PHP程序猿都应该拜读的书
2014/12/31 PHP
PHP加密解密类实例分析
2015/04/20 PHP
PHP目录与文件操作技巧总结(创建,删除,遍历,读写,修改等)
2016/09/11 PHP
JS 强制设为首页的代码
2009/01/31 Javascript
JS 对象介绍
2010/01/20 Javascript
jquery实现简单的无缝滚动
2015/04/15 Javascript
详解iframe与frame的区别
2016/01/13 Javascript
JS两种类型的表单提交方法实例分析
2016/11/28 Javascript
详解angular路由高亮之RouterLinkActive
2018/04/28 Javascript
NodeJs生成sitemap站点地图的方法示例
2019/06/11 NodeJs
element的el-table中记录滚动条位置的示例代码
2019/11/06 Javascript
微信小程序实现锚点功能
2019/11/20 Javascript
JS插入排序简单理解与实现方法分析
2019/11/25 Javascript
JS实现炫酷轮播图
2020/11/15 Javascript
windows系统下Python环境的搭建(Aptana Studio)
2017/03/06 Python
Python基于FTP模块实现ftp文件上传操作示例
2018/04/23 Python
python numpy 矩阵堆叠实例
2020/01/17 Python
HTML5和CSS3让网页设计提升到下一个高度
2009/08/14 HTML / CSS
HTML5自定义data-* data(obj)属性和jquery的data()方法的使用
2012/12/13 HTML / CSS
英国最大的百货公司:Harrods
2016/08/18 全球购物
英国旅游额外服务市场领导者:Holiday Extras(机场停车场、酒店、接送等)
2017/10/07 全球购物
英国电器零售商:PRC Direct
2018/06/21 全球购物
西班牙宠物用品和食品网上商店:Tiendanimal
2019/06/06 全球购物
党课心得体会范文
2014/09/09 职场文书
党的群众路线调研报告
2014/11/03 职场文书
2014年标准化工作总结
2014/12/17 职场文书
入党政审材料范文
2014/12/24 职场文书
技术支持岗位职责
2015/02/13 职场文书
小学英语教师2015年度个人工作总结
2015/10/14 职场文书
2015年乡镇组织委员工作总结
2015/10/23 职场文书
pytorch通过训练结果的复现设置随机种子
2021/06/01 Python
python中的装饰器该如何使用
2021/06/18 Python
一篇文章带你了解Python和Java的正则表达式对比
2021/09/15 Python
JS前端可扩展的低代码UI框架Sunmao使用详解
2022/07/23 Javascript