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 和 XML: 使用expat函数(三)
Oct 09 PHP
PHP的开发框架的现状和展望
Mar 16 PHP
PHP中设置时区方法小结
Jun 03 PHP
修改php.ini不生效问题解决方法(上传大于8M的文件)
Jun 14 PHP
百万级别知乎用户数据抓取与分析之PHP开发
Sep 28 PHP
再推荐十款免费的php开发工具
Nov 09 PHP
PHP使用strtotime获取上个月、下个月、本月的日期
Dec 30 PHP
微信公众平台开发-微信服务器IP接口实例(含源码)
Mar 05 PHP
PHP实现创建微信自定义菜单的方法示例
Jul 14 PHP
php使用curl伪造来源ip和refer的方法示例
May 08 PHP
php微信公众号开发之音乐信息
Oct 20 PHP
Laravel 连接(Join)示例
Oct 16 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日期时间函数的高级应用技巧
2009/05/16 PHP
必须收藏的23个php实用代码片段
2016/02/02 PHP
Laravel5.1 框架Middleware中间件基本用法实例分析
2020/01/04 PHP
thinkphp5实现微信扫码支付
2019/12/23 PHP
Jquery 点击按钮显示和隐藏层的代码
2011/07/25 Javascript
JavaScript 的继承
2011/10/01 Javascript
JavaScript定义类的几种方式总结
2014/01/06 Javascript
在jquery中的ajax方法怎样通过JSONP进行远程调用
2014/04/04 Javascript
三种取消选中单选框radio的方法
2014/09/09 Javascript
JavaScript中的变量作用域介绍
2014/12/31 Javascript
jQuery中:nth-child选择器用法实例
2014/12/31 Javascript
js实现跨域的4种实用方法原理分析
2015/10/29 Javascript
JavaScript使用DeviceOne开发实战(四)仿优酷视频应用
2015/12/02 Javascript
实例详解jQuery Mockjax 插件模拟 Ajax 请求
2016/01/12 Javascript
微信+angularJS的SPA应用中用router进行页面跳转,jssdk校验失败问题解决
2016/09/09 Javascript
VueJs单页应用实现微信网页授权及微信分享功能示例
2017/07/26 Javascript
nodejs发送http请求时遇到404长时间未响应的解决方法
2017/12/10 NodeJs
JavaScript原型链与继承操作实例总结
2018/08/24 Javascript
解决Vue.js由于延时显示了{{message}}引用界面的问题
2018/08/25 Javascript
默认浏览器设置及vue自动打开页面的方法
2018/09/21 Javascript
[05:02]2014DOTA2 TI中国区预选赛精彩TOPPLAY第三弹
2014/06/25 DOTA
numpy中的delete删除数组整行和整列的实例
2018/05/09 Python
Python占用的内存优化教程
2019/07/28 Python
python except异常处理之后不退出,解决异常继续执行的实现
2020/04/25 Python
python 删除excel表格重复行,数据预处理操作
2020/07/06 Python
MySQL面试题
2014/01/12 面试题
实习护士自我鉴定
2013/10/13 职场文书
饲料采购员岗位职责
2013/12/19 职场文书
资金主管岗位职责范本
2014/03/04 职场文书
诉讼授权委托书范本
2014/10/05 职场文书
科学发展观标语
2014/10/08 职场文书
横店影视城导游词
2015/02/06 职场文书
餐饮服务员岗位职责
2015/02/09 职场文书
2015年物业管理工作总结
2015/04/23 职场文书
Python包管理工具pip的15 个使用小技巧
2021/05/17 Python
sql查询结果列拼接成逗号分隔的字符串方法
2021/05/25 SQL Server