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 相关文章推荐
php5 图片验证码实现代码
Dec 11 PHP
yii框架通过控制台命令创建定时任务示例
Apr 30 PHP
php实例分享之mysql数据备份
May 19 PHP
PHP实现格式化文件数据大小显示的方法
Jan 03 PHP
php使用socket post数据到其它web服务器的方法
Jun 02 PHP
Apache服务器下防止图片盗链的办法
Jul 06 PHP
THinkPHP获取客户端IP与IP地址查询的方法
Nov 14 PHP
详解thinkphp实现excel数据的导入导出(附完整案例)
Dec 29 PHP
php上传excel表格并获取数据
Apr 27 PHP
PHP常用操作类之通信数据封装类的实现
Jul 16 PHP
PHP实现更改hosts文件的方法示例
Aug 08 PHP
Ajax+PHP实现的分类列表框功能示例
Feb 11 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 for PHP简单表数据查询实例
2007/01/02 PHP
测试php连接mysql是否成功的代码分享
2014/01/24 PHP
ThinkPHP3.1新特性之对分组支持的改进与完善概述
2014/06/19 PHP
PHP 生成N个不重复的随机数
2015/01/21 PHP
PHP答题类应用接口实例
2015/02/09 PHP
php获取twitter最新消息的方法
2015/04/14 PHP
PHP之密码加密的几种方式
2015/07/29 PHP
Yii框架弹出框功能示例
2017/01/07 PHP
ThinkPHP实现图片上传操作的方法详解
2017/05/08 PHP
Yii2.0建立公共方法简单示例
2019/01/29 PHP
javascript Excel操作知识点
2009/04/24 Javascript
js实现超简单的展开、折叠目录代码
2015/08/28 Javascript
JavaScript数组方法大全(推荐)
2016/07/05 Javascript
基于jQuery实现数字滚动效果
2017/01/16 Javascript
jQuery实现QQ空间汉字转拼音功能示例
2017/07/10 jQuery
vue父组件向子组件(props)传递数据的方法
2018/01/02 Javascript
纯JS实现可用于页码更换的飞页特效示例
2018/05/21 Javascript
关于微信小程序登录的那些事
2019/01/08 Javascript
[06:24]DOTA2亚洲邀请赛小组赛第三日 TOP10精彩集锦
2015/02/01 DOTA
Python下Fabric的简单部署方法
2015/07/14 Python
python 寻找list中最大元素对应的索引方法
2018/06/28 Python
python 使用值来排序一个字典的方法
2018/11/16 Python
基于Python在MacOS上安装robotframework-ride
2018/12/28 Python
OpenCV里的imshow()和Matplotlib.pyplot的imshow()的实现
2019/11/25 Python
python使用itchat模块给心爱的人每天发天气预报
2019/11/25 Python
Pytorch.nn.conv2d 过程验证方式(单,多通道卷积过程)
2020/01/03 Python
Django静态资源部署404问题解决方案
2020/05/11 Python
html5如何在Canvas中实现自定义路径动画示例
2017/09/18 HTML / CSS
APM Monaco中国官网:来自摩纳哥珠宝品牌
2017/12/27 全球购物
英国文胸专家:AmpleBosom.com
2018/02/06 全球购物
英国现代市场:ARKET
2019/04/10 全球购物
Topshop美国官网:英国快速时尚品牌
2019/05/16 全球购物
应聘护士自荐信
2013/10/21 职场文书
检讨书范文300字
2015/01/28 职场文书
2015年全国助残日活动方案
2015/05/04 职场文书
公司档案管理制度
2015/08/05 职场文书