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语法(5)
Oct 09 PHP
phpmyadmin导入(import)文件限制的解决办法
Dec 11 PHP
PHP中改变图片的尺寸大小的代码
Jul 17 PHP
php解析url的三个示例
Jan 20 PHP
CentOS 6.3下安装PHP xcache扩展模块笔记
Sep 10 PHP
PHP中substr()与explode()函数用法分析
Nov 24 PHP
php中Ctype函数用法详解
Dec 09 PHP
浅谈thinkphp的实例化模型
Jan 04 PHP
简单介绍win7下搭建apache+php+mysql开发环境
Aug 06 PHP
Yii2 批量插入、更新数据实例
Mar 15 PHP
PHP+redis实现的悲观锁机制示例
Jun 12 PHP
YII2框架中查询生成器Query()的使用方法示例
Mar 18 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
两种php调用Java对象的方法
2006/10/09 PHP
利用static实现表格的颜色隔行显示的代码
2007/09/02 PHP
PHP中基于ts与nts版本- vc6和vc9编译版本的区别详解
2013/04/26 PHP
php析构函数的简单使用说明
2015/08/24 PHP
可实现多表单提交的javascript函数
2007/08/01 Javascript
js中if语句的几种优化代码写法
2011/03/12 Javascript
Js点击弹出下拉菜单效果实例
2013/08/12 Javascript
js 浏览本地文件夹系统示例代码
2013/10/24 Javascript
JS插件overlib用法实例详解
2015/12/26 Javascript
JavaScript File API文件上传预览
2016/02/02 Javascript
浅析JavaScript中break、continue和return的区别
2016/11/30 Javascript
JavaScript使用链式方法封装jQuery中CSS()方法示例
2017/04/07 jQuery
JS简单获取日期相差天数的方法
2017/04/24 Javascript
深入浅析AngularJS中的一次性数据绑定 (bindonce)
2017/05/11 Javascript
javaScript canvas实现(画笔大小 颜色 橡皮的实例)
2017/11/28 Javascript
在Vue中使用Compass的方法
2018/03/02 Javascript
详解vue2.0监听属性的使用心得及搭配计算属性的使用
2018/07/18 Javascript
vue项目中axios请求网络接口封装的示例代码
2018/12/18 Javascript
vue实现的微信机器人聊天功能案例【附源码下载】
2019/02/18 Javascript
Python中的进程分支fork和exec详解
2015/04/11 Python
仅用50行代码实现一个Python编写的计算器的教程
2015/04/17 Python
Python爬虫爬取美剧网站的实现代码
2016/09/03 Python
python语言中with as的用法使用详解
2018/02/23 Python
使用Python制作缩放自如的圣诞老人(圣诞树)
2019/12/25 Python
python_array[0][0]与array[0,0]的区别详解
2020/02/18 Python
Python Numpy,mask图像的生成详解
2020/02/19 Python
python3+selenium获取页面加载的所有静态资源文件链接操作
2020/05/04 Python
大学毕业生最详细的自我评价分享
2013/11/18 职场文书
英语专业毕业生自荐信范文
2013/12/31 职场文书
办公室综合文员岗位职责范本
2014/02/13 职场文书
幼师小班个人总结
2015/02/12 职场文书
幼儿园教师自荐书
2015/03/06 职场文书
教师听课学习心得体会
2016/01/15 职场文书
MySQL 数据类型选择原则
2021/05/27 MySQL
小程序与后端Java接口交互实现HelloWorld入门
2021/07/09 Java/Android
Java数据结构之堆(优先队列)
2022/05/20 Java/Android