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 相关文章推荐
如何将数据从文本导入到mysql
Oct 09 PHP
php获得当前的脚本网址
Dec 10 PHP
php数组总结篇(一)
Sep 30 PHP
php下实现在指定目录搜索指定类型文件的函数
Oct 03 PHP
用php实现的下载css文件中的图片的代码
Feb 08 PHP
php的memcached客户端memcached
Jun 14 PHP
php中的路径问题与set_include_path使用介绍
Feb 11 PHP
php获取一个变量的名字的方法
Sep 05 PHP
学习php开源项目的源码指南
Dec 21 PHP
PHP实现简单实用的验证码类
Jul 29 PHP
PHP将URL转换成短网址的算法分享
Sep 13 PHP
PHP实现文件上传后台处理脚本
Mar 04 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
Ajax+PHP 边学边练之四 表单
2009/11/27 PHP
php学习笔记 数组遍历实现代码
2011/06/09 PHP
php数组生成html下拉列表的方法
2015/07/20 PHP
反射调用private方法实践(php、java)
2015/12/21 PHP
php与c 实现按行读取文件实例代码
2017/01/03 PHP
PHP+Ajax实现的无刷新分页功能详解【附demo源码下载】
2017/07/03 PHP
PHP中使用jQuery+Ajax实现分页查询多功能操作(示例讲解)
2017/09/17 PHP
Laravel 框架基于自带的用户系统实现登录注册及错误处理功能分析
2020/04/14 PHP
JavaScript基本对象
2007/01/11 Javascript
jquery 弹出层注册页面等(asp.net后台)
2010/06/17 Javascript
ASP.NET jQuery 实例9  通过控件hyperlink实现返回顶部效果
2012/02/03 Javascript
javascript中有趣的反柯里化深入分析
2012/12/05 Javascript
jQuery setTimeout()函数使用方法
2013/04/07 Javascript
js实现网页右上角滑出会自动消失大幅广告的方法
2015/02/27 Javascript
angularjs表格分页功能详解
2016/01/21 Javascript
jQuery 限制输入字符串长度
2016/06/20 Javascript
在 Typescript 中使用可被复用的 Vue Mixin功能
2018/04/17 Javascript
详解create-react-app 2.0版本如何启用装饰器语法
2018/10/23 Javascript
Nodejs libuv运行原理详解
2019/08/21 NodeJs
vue实现数字动态翻牌的效果(开箱即用)
2019/12/08 Javascript
[01:28:43]2014 DOTA2华西杯精英邀请赛5 24 DK VS CIS
2014/05/25 DOTA
Python实现Kmeans聚类算法
2020/06/10 Python
浅析python的优势和不足之处
2018/11/20 Python
python 实现矩阵填充0的例子
2019/11/29 Python
Python 实现使用空值进行赋值 None
2020/03/12 Python
canvas仿写贝塞尔曲线的示例代码
2017/12/29 HTML / CSS
STP的判定过程
2012/10/01 面试题
班会关于环保演讲稿
2013/12/29 职场文书
城市精细化管理实施方案
2014/03/04 职场文书
2014年政府采购工作总结
2014/12/09 职场文书
教师先进个人材料
2014/12/17 职场文书
我的暑假生活作文(五年级)范文
2019/08/07 职场文书
CSS极坐标的实例代码
2021/06/03 HTML / CSS
Python爬取某拍短视频
2021/06/11 Python
python​格式化字符串
2022/04/20 Python
Oracle删除归档日志及添加定时任务
2022/06/28 Oracle