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&amp;MYSQL服务器配置说明
Oct 09 PHP
如何开发一个虚拟域名系统
Oct 09 PHP
php可应用于面包屑导航的迭代寻找家谱树实现方法
Feb 02 PHP
PHP的文件操作与算法实现的面试题示例
Aug 10 PHP
Yii中CArrayDataProvider和CActiveDataProvider区别实例分析
Mar 02 PHP
thinkphp3.2.3版本的数据库增删改查实现代码
Sep 22 PHP
详解PHP编码转换函数应用技巧
Oct 22 PHP
thinkPHP简单调用函数与类库的方法
Mar 15 PHP
ThinkPHP整合datatables实现服务端分页的示例代码
Feb 10 PHP
PHP基于redis计数器类定义与用法示例
Feb 08 PHP
laravel5.6框架操作数据curd写法(查询构建器)实例分析
Jan 26 PHP
Thinkphp 框架扩展之数据库驱动常用方法小结
Apr 23 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
ubuntu下编译安装xcache for php5.3 的具体操作步骤
2013/06/18 PHP
destoon整合ucenter后注册页面不跳转的解决方法
2014/06/21 PHP
PHP魔术引号所带来的安全问题分析
2014/07/15 PHP
PHP中数据库单例模式的实现代码分享
2014/08/21 PHP
PHP生成唯一订单号
2015/07/05 PHP
使用PHP访问RabbitMQ消息队列的方法示例
2018/06/06 PHP
Javascript 函数对象的多重身份
2009/06/28 Javascript
DOM Scripting中的图片切换[兼容Firefox]
2010/06/12 Javascript
ExtJs Excel导出并下载IIS服务器端遇到的问题
2011/09/16 Javascript
js中通过split函数分割字符串成数组小例子
2013/09/21 Javascript
jquery实现动态菜单的实例代码
2013/11/28 Javascript
javascript原生和jquery库实现iframe自适应高度和宽度
2014/07/18 Javascript
JS实现兼容各浏览器解析XML文档数据的方法
2015/06/01 Javascript
实例讲解jQuery中对事件的命名空间的运用
2016/05/24 Javascript
JavaScript实现页面无操作倒计时退出
2016/10/22 Javascript
vue axios用法教程详解
2017/07/23 Javascript
Angular使用动态加载组件方法实现Dialog的示例
2018/05/11 Javascript
vue中进入详情页记住滚动位置的方法(keep-alive)
2018/09/21 Javascript
vue实现路由监听和参数监听
2019/10/29 Javascript
vue elementui 实现搜索栏公共组件封装的实例代码
2020/01/20 Javascript
最全vue的vue-amap使用高德地图插件画多边形范围的示例代码
2020/07/17 Javascript
Nodejs 数组的队列以及forEach的应用详解
2021/02/25 NodeJs
python字符串对其居中显示的方法
2015/07/11 Python
python3 图片 4通道转成3通道 1通道转成3通道 图片压缩实例
2019/12/03 Python
在TensorFlow中屏蔽warning的方式
2020/02/04 Python
探秘TensorFlow 和 NumPy 的 Broadcasting 机制
2020/03/13 Python
Python装饰器的应用场景代码总结
2020/04/10 Python
python 利用matplotlib在3D空间绘制二次抛物面的案例
2021/02/06 Python
HTML5各种头部meta标签的功能(推荐)
2017/03/13 HTML / CSS
欧洲领先的电子和电信零售商和服务提供商:Currys PC World Business
2017/12/05 全球购物
汉森冲浪板:Hansen Surfboards
2018/05/19 全球购物
开水果连锁店创业计划书
2013/12/29 职场文书
2014年个人技术工作总结
2014/12/08 职场文书
2014年连锁店圣诞节活动方案
2014/12/09 职场文书
详解MySQL InnoDB存储引擎的内存管理
2021/04/08 MySQL
《LOL》“克隆大作战”久违归来 幻灵战队皮肤上线
2022/04/03 其他游戏