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


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 相关文章推荐
15种PHP Encoder的比较
Mar 06 PHP
Bo-Blog专用的给Windows服务器的IIS Rewrite程序
Aug 26 PHP
PHP SPL使用方法和他的威力
Nov 12 PHP
php获取网卡的MAC地址支持WIN/LINUX系统
Apr 30 PHP
Json_encode防止汉字转义成unicode的方法
Feb 25 PHP
CI框架文件上传类及图像处理类用法分析
May 18 PHP
PHP怎样用正则抓取页面中的网址
Aug 09 PHP
php+jquery+html实现点击不刷新加载更多的实例代码
Aug 12 PHP
利用php实现一周之内自动登录存储机制(cookie、session、localStorage)
Oct 31 PHP
PHP实现基于栈的后缀表达式求值功能
Nov 10 PHP
PHP数组array类常见操作示例
May 15 PHP
PHP生成图表pChart的示例解析
Jul 31 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
mysql5详细安装教程
2007/01/15 PHP
php 字符串压缩方法比较示例
2014/01/23 PHP
PHP PDO fetch 模式各种参数的输出结果一览
2015/01/07 PHP
Laravel中七个非常有用但很少人知道的Carbon方法
2017/09/21 PHP
Jquery 实现表格颜色交替变化鼠标移过颜色变化实例
2013/08/28 Javascript
window.location.href IE下跳转失效的解决方法
2014/03/27 Javascript
浅谈JSON和JSONP区别及jQuery的ajax jsonp的使用
2014/11/23 Javascript
tuzhu_req.js 实现仿百度图片首页效果
2015/08/11 Javascript
Angular2表单自定义验证器的实现
2016/10/19 Javascript
基于Bootstrap仿淘宝分页控件实现代码
2016/11/07 Javascript
angularjs 实现带查找筛选功能的select下拉框实例
2017/01/11 Javascript
ES6新特性之Symbol类型用法分析
2017/03/31 Javascript
jquery动态赋值id与动态取id方法示例
2017/08/21 jQuery
JavaScript实现JSON合并操作示例【递归深度合并】
2018/09/07 Javascript
JavaScript Dom实现轮播图原理和实例
2021/02/19 Javascript
python基于windows平台锁定键盘输入的方法
2015/03/05 Python
python文件与目录操作实例详解
2016/02/22 Python
python2 与python3的print区别小结
2018/01/16 Python
在win10和linux上分别安装Python虚拟环境的方法步骤
2019/05/09 Python
Python 字符串、列表、元组的截取与切片操作示例
2019/09/17 Python
tensorflow使用range_input_producer多线程读取数据实例
2020/01/20 Python
装上这 14 个插件后,PyCharm 真的是无敌的存在
2021/01/11 Python
基于Canvas+Vue的弹幕组件的实现
2019/07/23 HTML / CSS
html5超简单的localStorage实现记住密码的功能实现
2017/09/07 HTML / CSS
来自全球大都市的高级街头服饰:Pegador
2018/01/03 全球购物
New Balance比利时官方网站:购买鞋子和服装
2021/01/15 全球购物
优秀毕业生求职信范文
2014/01/02 职场文书
临床医师专业个人自我评价
2014/01/08 职场文书
有限公司股东合作协议书
2014/10/29 职场文书
先进学校事迹材料
2014/12/30 职场文书
二手车转让协议书
2015/01/29 职场文书
2015秋季新学期开学寄语
2015/05/28 职场文书
奖学金申请书(范文)
2019/08/14 职场文书
Python机器学习算法之决策树算法的实现与优缺点
2021/05/13 Python
Golang 字符串的常见操作
2022/04/19 Golang
使用Nginx+Tomcat实现负载均衡的全过程
2022/05/30 Servers