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 相关文章推荐
十天学会php之第七天
Oct 09 PHP
新版PHP极大的增强功能和性能
Oct 09 PHP
php小型企业库存管理系统的设计与实现代码
May 16 PHP
优化PHP代码技巧的小结
Jun 02 PHP
使用php实现截取指定长度
Aug 06 PHP
php实现的短网址算法分享
Jun 20 PHP
PHP实现AES256加密算法实例
Sep 22 PHP
PHP5多态性与动态绑定介绍
Apr 03 PHP
mac下多个php版本快速切换的方法
Oct 09 PHP
Laravel5.7框架安装与使用学习笔记图文详解
Apr 02 PHP
php源码的安装方法和实例
Sep 26 PHP
基于PHP的微信公众号的开发流程详解
Aug 07 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
基于文本的搜索
2006/10/09 PHP
php 远程关机操作的代码
2008/12/05 PHP
PHP日期时间函数的高级应用技巧
2009/05/16 PHP
让php处理图片变得简单 基于gb库的图片处理类附实例代码下载
2011/05/17 PHP
Fatal error: session_start(): Failed to initialize storage module: files问题解决方法
2014/05/04 PHP
封装ThinkPHP的一个文件上传方法实例
2014/10/31 PHP
深入理解PHP原理之执行周期分析
2016/06/01 PHP
给jqGrid数据行添加修改和删除操作链接(之一)
2011/11/04 Javascript
JavaScript实现广告弹窗效果
2016/08/09 Javascript
jQuery EasyUI 页面加载等待及页面等待层
2017/02/06 Javascript
jQuery点击头像上传并预览图片
2017/02/23 Javascript
async/await地狱该如何避免详解
2018/05/10 Javascript
一些手写JavaScript常用的函数汇总
2019/04/16 Javascript
layui实现三级导航菜单
2019/07/26 Javascript
[40:03]RNG vs VG 2019国际邀请赛小组赛 BO2 第二场 8.15
2019/08/17 DOTA
python使用Flask框架获取用户IP地址的方法
2015/03/21 Python
Python中用函数作为返回值和实现闭包的教程
2015/04/27 Python
Python函数式编程指南(二):从函数开始
2015/06/24 Python
深入解析Python中的集合类型操作符
2015/08/19 Python
神经网络理论基础及Python实现详解
2017/12/15 Python
python实现nao机器人手臂动作控制
2019/04/29 Python
Python使用指定字符长度切分数据示例
2019/12/05 Python
Python识别html主要文本框过程解析
2020/02/18 Python
PyQt中使用QtSql连接MySql数据库的方法
2020/07/28 Python
python的setattr函数实例用法
2020/12/16 Python
Django中如何用xlwt生成表格的方法步骤
2021/01/31 Python
Python实现粒子群算法的示例
2021/02/14 Python
详解px单位html5响应式方案
2018/03/08 HTML / CSS
澳大利亚家庭花园和DIY工具网店:VidaXL
2019/05/03 全球购物
机修工岗位职责
2013/11/24 职场文书
文秘专业个人求职信
2013/12/22 职场文书
公司成立感言
2014/01/11 职场文书
计算机相关的自我评价
2014/01/15 职场文书
村党支部书记个人对照材料汇报
2014/10/26 职场文书
商务宴会祝酒词
2015/08/11 职场文书
毕业生自荐求职信书写的技巧
2019/08/26 职场文书