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 相关文章推荐
FirePHP 推荐一款PHP调试工具
Apr 23 PHP
php生成扇形比例图实例
Nov 06 PHP
php删除数组元素示例分享
Feb 17 PHP
一个简单的PHP验证码实现代码
May 10 PHP
php实现的Captcha验证码类实例
Sep 22 PHP
Smarty中常用变量操作符汇总
Oct 27 PHP
php查询whois信息的方法
Jun 08 PHP
PHP模板引擎Smarty中的保留变量用法分析
Apr 11 PHP
php array_slice 取出数组中的一段序列实例
Nov 04 PHP
Yii2第三方类库插件Imagine的安装和使用
Jul 06 PHP
PHP getNamespaces()函数讲解
Feb 03 PHP
PHP使用openssl扩展实现加解密方法示例
Feb 20 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路由类
2016/05/29 PHP
TextArea 控件的最大长度问题(js json)
2009/12/16 Javascript
取选中的radio的值
2010/01/11 Javascript
iframe 父窗口和子窗口相互的调用方法集锦
2010/12/15 Javascript
使用jquery读取html5 localstorage的值的方法
2013/01/04 Javascript
使用pjax实现无刷新更改页面url
2015/02/05 Javascript
jQuery+CSS实现的网页二级下滑菜单效果
2015/08/25 Javascript
KnockoutJS 3.X API 第四章之事件event绑定
2016/10/10 Javascript
vuejs2.0运用原生js实现简单的拖拽元素功能示例
2017/02/24 Javascript
Vue2单一事件管理组件通信
2017/05/09 Javascript
详解如何在 vue 项目里正确地引用 jquery 和 jquery-ui的插件
2017/06/01 jQuery
vue2.5.2使用http请求获取静态json数据的实例代码
2018/02/27 Javascript
Vue-cli3多页面配置详解
2020/03/22 Javascript
vue 获取url参数、get参数返回数组的操作
2020/11/12 Javascript
Python操作csv文件实例详解
2017/07/31 Python
Python学习pygal绘制线图代码分享
2017/12/09 Python
答题辅助python代码实现
2018/01/16 Python
python绘制地震散点图
2019/06/18 Python
Python定时发送天气预报邮件代码实例
2019/09/09 Python
wxpython绘制音频效果
2019/11/18 Python
python 比较2张图片的相似度的方法示例
2019/12/18 Python
TensorFlow使用Graph的基本操作的实现
2020/04/22 Python
python 基于DDT实现数据驱动测试
2021/02/18 Python
纯html5+css3下拉导航菜单实现代码
2013/03/18 HTML / CSS
德国专业木制品经销商:Holz-Direkt24
2019/12/26 全球购物
执行总经理岗位职责
2014/02/03 职场文书
《夸父追日》教学反思
2014/02/26 职场文书
活动总结怎么写
2014/04/28 职场文书
超市创意活动方案
2014/08/15 职场文书
创先争优演讲稿
2014/09/15 职场文书
八达岭长城导游词
2015/01/30 职场文书
2015年学校财务工作总结
2015/05/19 职场文书
张丽莉观后感
2015/06/16 职场文书
幼儿园小班教育随笔
2015/08/14 职场文书
给校长的建议书作文500字
2015/09/14 职场文书
《我要的是葫芦》教学反思
2016/02/18 职场文书