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 !function_exists(&quot;T7FC56270E7A70FA81A5935B72EACBE29&quot;))代码解密
Jan 07 PHP
php数组函数序列之in_array() - 查找数组中是否存在指定值
Nov 07 PHP
PHP设计模式之装饰者模式
Feb 29 PHP
详解PHP内置访问资源的超时时间 time_out file_get_contents read_file
Jun 03 PHP
PHP生成随机密码类分享
Jun 25 PHP
php实现读取超大文件的方法
Jul 28 PHP
typecho插件编写教程(四):插件挂载
May 28 PHP
关于php微信订阅号开发之token验证后自动发送消息给订阅号但是没有消息返回的问题
Dec 21 PHP
PHP对称加密算法(DES/AES)类的实现代码
Nov 14 PHP
PHP SPL 被遗落的宝石【SPL应用浅析】
Apr 20 PHP
PHP操作Redis常用技巧总结
Apr 24 PHP
Laravel框架控制器,视图及模型操作图文详解
Dec 04 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
外媒评选出10支2020年最受欢迎的Dota2战队
2021/03/05 DOTA
JpGraph php柱状图使用介绍
2011/08/23 PHP
教你识别简单的免查杀PHP后门
2015/09/13 PHP
学习php设计模式 php实现访问者模式(Visitor)
2015/12/07 PHP
JavaScript 未结束的字符串常量常见解决方法
2010/01/24 Javascript
网页上的Javascript编辑器和代码格式化
2010/04/25 Javascript
jQuery代码优化 事件委托篇
2011/11/01 Javascript
JavaScript基础篇之变量作用域、传值、传址的简单介绍与实例
2013/06/29 Javascript
jquery 倒计时效果实现秒杀思路
2013/09/11 Javascript
js模拟点击以提交表单为例兼容主流浏览器
2013/11/29 Javascript
form表单action提交的js部分与html部分
2014/01/07 Javascript
JavaScript学习笔记之数组求和方法
2016/03/23 Javascript
基于JS实现密码框(password)中显示文字提示功能代码
2016/05/27 Javascript
javascript 将共享属性迁移到原型中去的实现方法
2016/08/31 Javascript
BootStrap Tooltip插件源码解析
2016/12/27 Javascript
bootstrap table sum总数量统计实现方法
2017/10/29 Javascript
使用vue实现简单键盘的示例(支持移动端和pc端)
2017/12/25 Javascript
实例分析Array.from(arr)与[...arr]到底有何不同
2019/04/09 Javascript
使用Vue 自定义文件选择器组件的实例代码
2020/03/04 Javascript
python将多个文本文件合并为一个文本的代码(便于搜索)
2011/03/13 Python
Python实现删除文件中含“指定内容”的行示例
2017/06/09 Python
Python学习笔记之抓取某只基金历史净值数据实战案例
2019/06/03 Python
Pyqt5实现英文学习词典
2019/06/24 Python
pytorch 自定义数据集加载方法
2019/08/18 Python
Python实现多线程下载脚本的示例代码
2020/04/03 Python
Python内置异常类型全面汇总
2020/05/28 Python
Python爬虫之Selenium实现关闭浏览器
2020/12/04 Python
python 基于selectors库实现文件上传与下载
2020/12/31 Python
微软英国官方网站:Microsoft英国
2016/10/15 全球购物
英语专业毕业生自我鉴定
2013/11/09 职场文书
小学生元旦感言
2014/02/26 职场文书
单位工作证明书格式
2014/10/04 职场文书
乡镇务虚会发言材料
2014/10/20 职场文书
反腐倡廉主题教育活动总结
2015/05/07 职场文书
英语专业毕业论文答辩开场白
2015/05/27 职场文书
四年级数学教学反思
2016/02/16 职场文书