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


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 相关文章推荐
MYSQL数据库初学者使用指南
Nov 16 PHP
利用ThinkPHP内置的ThinkAjax实现异步传输技术的实现方法
Dec 19 PHP
怎么在Windows系统中搭建php环境
Aug 31 PHP
PHP根据IP地址获取所在城市具体实现
Nov 27 PHP
PHP中执行MYSQL事务解决数据写入不完整等情况
Jan 07 PHP
WordPress网站性能优化指南
Nov 18 PHP
[原创]php求圆周率的简单实现方法
May 30 PHP
PHP写的简单数字验证码实例
May 23 PHP
laravel框架的安装与路由实例分析
Oct 11 PHP
laravel框架上传图片实现实时预览功能
Oct 14 PHP
laravel 根据不同组织加载不同视图的实现
Oct 14 PHP
php7 图形用户界面GUI 开发示例
Feb 22 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
PHP中的正规表达式(二)
2006/10/09 PHP
ThinkPHP通过AJAX返回JSON的两种实现方法
2014/12/18 PHP
PHP列出MySQL中所有数据库的方法
2015/03/12 PHP
php检查函数必传参数是否存在的实例详解
2017/08/28 PHP
浏览器无法运行JAVA脚本的解决方法
2008/01/09 Javascript
javascript中的数字与字符串相加实例分析
2011/08/14 Javascript
JavaScript创建一个欢迎cookie弹出窗实现代码
2013/03/15 Javascript
理解javascript函数式编程中的闭包(closure)
2016/03/08 Javascript
JavaScript学习笔记之数组去重
2016/03/23 Javascript
使用bootstrap typeahead插件实现输入框自动补全之问题及解决办法
2016/07/07 Javascript
防止Node.js中错误导致进程阻塞的办法
2016/08/11 Javascript
文件上传插件SWFUpload的使用指南
2016/11/29 Javascript
webpack学习--webpack经典7分钟入门教程
2017/06/28 Javascript
jQuery实现打开网页自动弹出遮罩层或点击弹出遮罩层功能示例
2017/10/19 jQuery
Vue兼容ie9的问题全面解决方案
2018/06/19 Javascript
Vue 中可以定义组件模版的几种方式
2019/08/06 Javascript
layui实现鼠标移动到单元格上显示数据的方法
2019/09/11 Javascript
详解NodeJs项目 CentOs linux服务器线上部署
2019/09/16 NodeJs
vue-cli 3如何使用vue-bootstrap-datetimepicker日期插件
2021/02/20 Vue.js
[01:05]DOTA2完美大师赛趣味视频之选手教你打职业
2017/11/23 DOTA
Python 一键制作微信好友图片墙的方法
2019/05/16 Python
python爬虫 批量下载zabbix文档代码实例
2019/08/21 Python
python3.7将代码打包成exe程序并添加图标的方法
2019/10/11 Python
python编程进阶之类和对象用法实例分析
2020/02/21 Python
使用JS+CSS3技术:让你的名字动起来
2013/04/27 HTML / CSS
SmartBuyGlasses中国:唯视良品(销售名牌太阳镜、墨镜和眼镜框)
2017/07/03 全球购物
MySQL面试题
2014/01/12 面试题
优秀教师主要事迹
2014/02/01 职场文书
考博专家推荐信
2014/05/10 职场文书
2015年反腐倡廉工作总结
2015/05/14 职场文书
交通事故调解协议书
2015/05/20 职场文书
2015年第31个教师节致辞
2015/07/31 职场文书
六年级语文教学反思
2016/03/03 职场文书
2016年党员读书月活动总结
2016/04/06 职场文书
python库sklearn常用操作
2021/08/23 Python
Java基于Dijkstra算法实现校园导游程序
2022/03/17 Java/Android