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获得用户使用的代理服务器ip即真实ip
Dec 31 PHP
关于mysql 字段的那个点为是定界符
Jan 15 PHP
PHP 可阅读随机字符串代码
May 26 PHP
初品cakephp 入门基础
Feb 16 PHP
jQuery+php实现ajax文件即时上传的详解
Jun 17 PHP
php实现mysql数据库操作类分享
Feb 14 PHP
destoon实现公司新闻详细页添加评论功能的方法
Jul 15 PHP
PHP中的替代语法简介
Aug 22 PHP
PHP pear安装配置教程
May 14 PHP
php处理json格式数据经典案例总结
May 19 PHP
PHP实现无限分类的实现方法
Nov 14 PHP
PHP PDOStatement::errorCode讲解
Jan 31 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写的采集程序
2007/03/16 PHP
form自动提交实例讲解
2017/07/10 PHP
PHP实现与java 通信的插件使用教程
2019/08/11 PHP
thinkPHP+LayUI 流加载实现功能
2019/09/27 PHP
jQuery学习笔记之jQuery的动画
2010/12/22 Javascript
javascript中创建对象的三种常用方法
2010/12/30 Javascript
jQuery基础框架浅入剖析
2012/12/27 Javascript
javascript实现微信分享
2014/12/23 Javascript
浅谈jquery中delegate()与live()
2015/06/22 Javascript
浅析Javascript中bind()方法的使用与实现
2016/05/30 Javascript
AngularJS教程 ng-style 指令简单示例
2016/08/03 Javascript
jQuery表单元素选择器代码实例
2017/02/06 Javascript
nodejs个人博客开发第一步 准备工作
2017/04/12 NodeJs
利用vueJs实现图片轮播实例代码
2017/06/03 Javascript
javascript实现导航栏分页效果
2019/06/27 Javascript
微信小程序 Storage更新详解
2019/07/16 Javascript
webpack优化之代码分割与公共代码提取详解
2019/11/22 Javascript
js瀑布流布局的实现
2020/06/28 Javascript
如何利用JavaScript编写更好的条件语句详解
2020/08/10 Javascript
python读取csv文件示例(python操作csv)
2014/03/11 Python
python最长回文串算法
2018/06/04 Python
Python读写文件模式和文件对象方法实例详解
2019/09/17 Python
在Python中使用MongoEngine操作数据库教程实例
2019/12/03 Python
python编写微信公众号首图思路详解
2019/12/13 Python
python中numpy数组与list相互转换实例方法
2021/01/29 Python
CSS3 3D旋转rotate效果实例介绍
2016/05/03 HTML / CSS
美国五金商店:Ace Hardware
2018/03/27 全球购物
国际贸易个人求职信范文
2014/01/04 职场文书
品牌推广活动策划方案
2014/08/19 职场文书
2014迎国庆标语大全
2014/09/19 职场文书
党员群众路线整改措施及今后努力方向
2014/10/28 职场文书
团代会开幕词
2015/01/28 职场文书
幼儿园中班教师个人总结
2015/02/05 职场文书
用JS实现飞机大战小游戏
2021/06/09 Javascript
让JavaScript代码更加精简的方法技巧
2022/06/01 Javascript
Ubuntu安装Mysql+启用远程连接的完整过程
2022/06/21 Servers