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作的文本留言本的例子(二)
Oct 09 PHP
php基础知识:类与对象(3) 构造函数和析构函数
Dec 13 PHP
PHP simple_html_dom.php+正则 采集文章代码
Dec 24 PHP
PHP 防注入函数(格式化数据)
Aug 08 PHP
php数组函数序列之array_flip() 将数组键名与值对调
Nov 07 PHP
基于PHP CURL用法的深入分析
Jun 09 PHP
php数组索引与键值操作技巧实例分析
Jun 24 PHP
php实现scws中文分词搜索的方法
Dec 25 PHP
php 获取文件行数的方法总结
Oct 11 PHP
Laravel中七个非常有用但很少人知道的Carbon方法
Sep 21 PHP
PHP实现的curl批量请求操作示例
Jun 06 PHP
PHP tp5中使用原生sql查询代码实例
Oct 28 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
SWFUpload与CI不能正确上传识别文件MIME类型解决方法分享
2011/04/18 PHP
PHP写UltraEdit插件脚本实现方法
2011/12/26 PHP
php中DOMElement操作xml文档实例演示
2013/03/26 PHP
php calender(日历)二个版本代码示例(解决2038问题)
2013/12/24 PHP
PHP empty函数报错解决办法
2014/03/06 PHP
php去除html标记的原生函数详解
2015/01/27 PHP
PHP下的浮点运算不准的解决方法
2016/10/27 PHP
JQuery,Extjs,YUI,Prototype,Dojo 等JS框架的区别和应用场景简述
2010/04/15 Javascript
通过js动态操作table(新增,删除相关列信息)
2012/05/23 Javascript
javaScript对文字按照拼音排序实现代码
2013/12/27 Javascript
js判断浏览器类型为ie6时不执行
2014/06/15 Javascript
js实现简单排列组合的方法
2016/01/27 Javascript
Jquery和Js获得元素标签名称的方法总结
2016/10/08 Javascript
JavaScript仿百度图片浏览效果
2016/11/23 Javascript
Angular2生命周期钩子函数的详细介绍
2017/07/10 Javascript
nodejs动态创建二维码的方法
2017/08/12 NodeJs
浅谈Vuejs Prop基本用法
2017/08/17 Javascript
浅谈webpack打包之后的文件过大的解决方法
2018/03/07 Javascript
Node.js API详解之 dns模块用法实例分析
2020/05/15 Javascript
jQuery实现可以计算进制转换的计算器
2020/10/19 jQuery
python在windows和linux下获得本机本地ip地址方法小结
2015/03/20 Python
Python查找第n个子串的技巧分享
2018/06/27 Python
python3.x 将byte转成字符串的方法
2018/07/17 Python
浅谈python下含中文字符串正则表达式的编码问题
2018/12/07 Python
python pyqtgraph 保存图片到本地的实例
2020/03/14 Python
keras实现theano和tensorflow训练的模型相互转换
2020/06/19 Python
python Yaml、Json、Dict之间的转化
2020/10/19 Python
Wedgwood美国官网:英国骨瓷,精美礼品及家居装饰
2018/02/17 全球购物
iPad和Surface Pro蓝牙键盘:Brydge
2018/11/10 全球购物
有模特经验的简历自我评价
2013/09/19 职场文书
《维生素c的故事》教学反思
2014/02/18 职场文书
《会走路的树》教后反思
2014/04/19 职场文书
商业门面租房协议书
2014/11/25 职场文书
思品教学工作总结
2015/08/10 职场文书
导游词之长城八达岭
2019/09/24 职场文书
请求模块urllib之PYTHON爬虫的基本使用
2022/04/08 Python