php 字符过滤类,用于过滤各类用户输入的数据


Posted in PHP onMay 27, 2009

详细代码如下:

<?php 
abstract class Filter { //filter parent class 
private $blackstr = array(); 
private $whitestr = array(); 
function filtit($str) { 
//do something 
} 
} 
class LoginFilter extends Filter { //for user login filte username(过滤注册的用户名) 
function filtit($str) { 
$this -> blackstr = array( 
´/[\x7f-\xff]/´, //filter chinese include chinese symbol 
´/\W/´ //filter all english symbol 
); 
return preg_replace($this->blackstr, ´´, $str); 
} 
} 
class EditorFilter extends Filter { //for article editor filter(过滤在线编辑器内容) 
function filtit($str) { 
$this -> blackstr = array( 
´/\&/´, 
´/\´/´, 
´/\"/´, 
´/\</´, 
´/\>/´, 
´/\\\\/´, 
´/\//´, 
´/-/´, 
´/\*/´, 
´/ /´ 
); 
$this -> whitestr = array( 
´&´, 
´'´, 
´"´, 
´<´, 
´>´, 
´\´, 
´/´, 
´-´, 
´*´, 
´ ´ 
); 
return preg_replace($this->blackstr, $this -> whitestr, $str); 
} 
} 
class SQLFilter extends Filter { //for filte sql query string(过滤如查询或其它sql语句) 
function filtit($str) { 
$this -> blackstr = array( 
´/\´/´, 
´/-/´ 
); 
return preg_replace($this->blackstr, ´´, $str); 
} 
} 
class FileNameFilter extends Filter { //for filte a file name(过滤文件名如下载文件名) 
function filtit($str) { 
$this -> blackstr = array( 
´/[^A-za-z0-9_\.]|\\\\|\^|\[|\]/´ 
); 
return preg_replace($this->blackstr, ´´, $str); 
} 
} 
?>

使用方法如:
$filter = new FileNameFilter(); //定义实例 
$downFile = $filter->filtit($_GET[´fn´]); //调用过滤方法
PHP 相关文章推荐
ASP知识讲座四
Oct 09 PHP
PHP分页显示制作详细讲解
Oct 09 PHP
PHP 反射机制实现动态代理的代码
Oct 22 PHP
PHP开发中常用的三个表单验证函数使用小结
Mar 03 PHP
收集的二十一个实用便利的PHP函数代码
Apr 22 PHP
php数组索引的Key加引号和不加引号的区别
Aug 19 PHP
PHP实现HTML生成PDF文件的方法
Nov 07 PHP
ThinkPHP中RBAC类的四种用法分析
Nov 24 PHP
php创建session的方法实例详解
Jan 27 PHP
一段实用的php验证码函数
May 19 PHP
Yii核心验证器api详解
Nov 23 PHP
tp5.1 框架查询表达式用法详解
May 25 PHP
PHP的单引号和双引号 字符串效率
May 27 #PHP
php session 错误
May 21 #PHP
php print EOF实现方法
May 21 #PHP
php 方便水印和缩略图的图形类
May 21 #PHP
简单的php 验证图片生成函数
May 21 #PHP
PHP 数组入门教程小结
May 20 #PHP
php 无限级 SelectTree 类
May 19 #PHP
You might like
phpMyAdmin2.11.6安装配置方法
2008/08/24 PHP
PHP实现获取并生成数据库字典的方法
2016/05/04 PHP
JavaScript脚本性能优化注意事项
2008/11/18 Javascript
使用CSS和jQuery模拟select并附提交后取得数据的代码
2013/10/18 Javascript
JS脚本defer的作用示例介绍
2014/01/02 Javascript
vue学习教程之带你一步步详细解析vue-cli
2017/12/26 Javascript
vue绑定的点击事件阻止冒泡的实例
2018/02/08 Javascript
vuejs实现标签选项卡动态更改css样式的方法
2018/05/31 Javascript
vue+Element-ui实现登录注册表单
2020/11/17 Javascript
微信小程序自定义底部弹出框功能
2020/11/18 Javascript
iview实现动态表单和自定义验证时间段重叠
2021/01/10 Javascript
原生js实现无缝轮播图效果
2021/01/28 Javascript
[02:35]DOTA2英雄基础教程 末日使者
2013/12/04 DOTA
[02:30]辉夜杯主赛事第二日胜者组半决赛 CDEC.Y赛后采访
2015/12/26 DOTA
[00:20]DOTA2荣耀之路7:-ah fu-抢盾
2018/05/31 DOTA
[31:55]完美世界DOTA2联赛循环赛 IO vs GXR BO2第一场 11.04
2020/11/05 DOTA
Python语言实现机器学习的K-近邻算法
2015/06/11 Python
Python Flask基础教程示例代码
2018/02/07 Python
python3使用腾讯企业邮箱发送邮件的实例
2019/06/28 Python
Django项目中使用JWT的实现代码
2019/11/04 Python
解决python DataFrame 打印结果不换行问题
2020/04/09 Python
Python tempfile模块生成临时文件和临时目录
2020/09/30 Python
aec加密 php_php aes加密解密类(兼容php5、php7)
2021/03/14 PHP
eBay爱尔兰站:eBay.ie
2019/08/09 全球购物
一道Delphi面试题
2016/10/28 面试题
数控技术与应用毕业生自荐信
2013/09/24 职场文书
学生实习自我鉴定
2013/10/11 职场文书
旅游文化节策划方案
2014/06/06 职场文书
中国梦口号
2014/06/13 职场文书
美术课外活动总结
2014/07/08 职场文书
学校感恩节活动策划方案
2014/10/06 职场文书
三严三实民主生活会发言稿
2014/10/13 职场文书
办公室务虚会发言材料
2014/10/20 职场文书
2014城乡环境综合治理工作总结
2014/12/19 职场文书
运动会开幕式通讯稿
2015/07/18 职场文书
感谢信
2019/04/11 职场文书