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伪静态页面函数附使用方法
Jun 20 PHP
中英文字符串翻转函数
Dec 09 PHP
php 短链接算法收集与分析
Dec 30 PHP
合并ThinkPHP配置文件以消除代码冗余的实现方法
Jul 22 PHP
PHP生成网站桌面快捷方式代码分享
Oct 11 PHP
百度工程师讲PHP函数的实现原理及性能分析(三)
May 13 PHP
PHP浮点比较大小的方法
Feb 14 PHP
ThinkPHP路由机制简介
Mar 23 PHP
在PHP语言中使用JSON和将json还原成数组的方法
Jul 19 PHP
PHP入门教程之表单与验证实例详解
Sep 11 PHP
php5.5使用PHPMailer-5.2发送邮件的完整步骤
Oct 14 PHP
Laravel Eloquent分表方法并使用模型关联的实现
Nov 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
关于在php.ini中添加extension=php_mysqli.dll指令的说明
2007/06/14 PHP
Laravel学习教程之本地化模块
2017/08/18 PHP
PHP Swoole异步读取、写入文件操作示例
2019/10/24 PHP
JQuery团队打造的javascript单元测试工具QUnit介绍
2010/02/26 Javascript
Jquery实现仿新浪微博获取文本框能输入的字数代码
2013/02/22 Javascript
禁用页面部分JavaScript方法的具体实现
2013/07/31 Javascript
JavaScript中string转换成number介绍
2014/12/31 Javascript
jQuery寻找n以内完全数的方法
2015/06/24 Javascript
JS+CSS实现大气的黑色首页导航菜单效果代码
2015/09/10 Javascript
易操作的jQuery表单提示插件
2015/12/01 Javascript
Node.js服务器环境下使用Mock.js拦截AJAX请求的教程
2016/05/23 Javascript
Nuxt.js实战详解
2018/01/18 Javascript
详解在React里使用&quot;Vuex&quot;
2018/04/02 Javascript
node实现的爬虫功能示例
2018/05/04 Javascript
JS学习笔记之贪吃蛇小游戏demo实例详解
2019/05/29 Javascript
优化Vue中date format的性能详解
2020/01/13 Javascript
vue实现信息管理系统
2020/05/30 Javascript
浅谈vue的第一个commit分析
2020/06/08 Javascript
在python中使用requests 模拟浏览器发送请求数据的方法
2018/12/26 Python
Python图像处理之图像的缩放、旋转与翻转实现方法示例
2019/01/04 Python
Pycharm+Scrapy安装并且初始化项目的方法
2019/01/15 Python
django 数据库连接模块解析及简单长连接改造方法
2019/08/29 Python
TensorFlow实现从txt文件读取数据
2020/02/05 Python
django下创建多个app并设置urls方法
2020/08/02 Python
美国知名的在线旅游服务网站:Priceline
2016/07/23 全球购物
可爱的童装和鞋子:Fabkids
2019/08/16 全球购物
linux比较文件内容的命令是什么
2013/03/04 面试题
竞选演讲稿范文
2013/12/28 职场文书
校园学雷锋活动月总结
2014/03/09 职场文书
委托书范本
2014/04/02 职场文书
幼儿园师德师风学习材料
2014/05/29 职场文书
医德医魂心得体会
2014/09/11 职场文书
单位同意报考证明
2015/06/17 职场文书
2016年端午节红领巾广播稿
2015/12/18 职场文书
导游词之茶卡盐湖
2019/11/26 职场文书
JavaScript ES6的函数拓展
2022/01/18 Javascript