php filter 安全过滤函数
转自:http://www.blags.org/archives/741.html
php 利用filter 扩展编写的参数处理静态类,欢迎使用。
希望大家看得开心,用得放心。
<?php
/**
* @参数验证函数
* @method:
* @license http://www.blags.org/
* @created:2011年07月02日 11时00分
* @copyright 1997-2011 The Martin Group
* @author Martin <martin@blags.org>
* */
abstract class CFilter
{
/**
* 类型
* @var array
*/
public static $varType = array(
'GET'=> INPUT_GET,
'POST'=> INPUT_POST,
'COOKIE'=> INPUT_COOKIE,
'SERVER'=> INPUT_SERVER,
'ENV'=> INPUT_ENV
);
public static $filterType = array(
'STRING'=>FILTER_SANITIZE_STRING,
'INT'=>FILTER_VALIDATE_INT,
'BOOLEAN'=>FILTER_VALIDATE_BOOLEAN,
'FLOAT'=>FILTER_VALIDATE_FLOAT,
'REGEXP'=>FILTER_VALIDATE_REGEXP,
'URL'=>FILTER_VALIDATE_URL,
'EMAIL'=>FILTER_VALIDATE_EMAIL,
'IP'=>FILTER_VALIDATE_IP,
); /**
* 支持过滤列表
*/
private static function lists()
{
return filter_list();
} /**
* 验证类型
* @param string $type
*/
public static function filterType($type)
{
$filter_list = self::lists();
return array_search($type,$filter_list) !== false ? true : false;
} /**
*
* @param $setVarType
*/
private static function getVarType($setVarType)
{
$setVarType = strtoupper($setVarType);
return isset(self::$varType[$setVarType]) ? self::$varType[$setVarType] : null;
} /**
*
* @param string $setFilterType
*/
private static function getFilterType($setFilterType)
{
$setFilterType = strtoupper($setFilterType);
return isset(self::$filterType[$setFilterType]) ? self::$filterType[$setFilterType] : null;
} /**
* 检测参数是否存在
* @param string $setVarType
* @param string $varName
*/
public static function VarExists($setVarType,$varName)
{
$FilterVarType = self::getVarType($setVarType);
if (is_null($FilterVarType))
return false;
return filter_has_var(self::$varType[$FilterVarType], $varName);
} /**
*
* @param string $setVarType
* @param string $varName
* @param string $filterType
*/
public static function FilterInput($setVarType, $varName, $filterType = 'INT')
{
$FilterVarType = self::getVarType($setVarType);
$filterType = self::getFilterType($filterType);
if (is_null($FilterVarType) || is_null($filterType))
return false;
return filter_input($FilterVarType, $varName, $filterType);
} /**
* 验证变量
* @param string $var
* @param string $filterType
*/
public static function FilterVar($var,$filterType)
{
$filterType = self::getFilterType($filterType);
return filter_var($var, $filterType);
} /**
* 字符串
* @param string $var
*/
public static function String($var)
{
return self::FilterVar($var,'STRING');
} public static function Int($var)
{
return self::FilterVar($var,'INT');
} public static function Boolean($var)
{
return self::FilterVar($var,'INT');
} public static function Float($var)
{
return self::FilterVar($var,'FLOAT');
} /**
*
* @param string $var
* @param array $option array("options"=>array("regexp"=>"/^M(.*)/"))
*/
public static function Regexp($var,$option)
{
$filterType = self::getFilterType($filterType);
return filter_var($var, $filterType, $option);
} public static function Url($var)
{
return self::FilterVar($var,'URL');
} public static function Email($var)
{
return self::FilterVar($var,'EMAIL');
} public static function Ip($var)
{
return self::FilterVar($var,'IP');
}
}
php filter 安全过滤函数的更多相关文章
- Filter 数组过滤函数精解示例
'************************************************************************* '**模 块 名:Filter 数组过滤函数精解示 ...
- 过滤函数 filter
filter(lambda x:x.endswith('居'),house_type_list) 过滤函数,作用就是将“以‘居’结尾的字段都过滤出来,其它的字段都删除掉.”
- 匿名函数lambda,过滤函数filter,映射类型map
匿名函数lambda, 作用是不用定义函数,用完之后会自动被删掉,在使用执行脚本的时候,使用lambda就可以省下定义函数的过程,简化代码的可读性. 格式是 例子g=lambda x,y:x+y g( ...
- map内置函数、lambda表达式、快捷生成想要的列表、filter内置函数
map函数 语法 map(function, iterable, ...) 参数 function -- 函数,有两个参数 iterable ...
- filter与map函数
·filter()函数filter()函数包括两个参数,分别是function和list.该函数根据function参数返回的结果是否为真来过滤list参数中的项,最后返回一个新列表,如下例所示:&g ...
- django-admin 仿写stark组件action,filter筛选过滤,search查询
写在StandLi里面的方法都是通过ModelSubject这个类里面的stand_li方法,在它里面用StandLi这个类实例化出来一个对象,这个实例化出来的对象把数据传给前端HTML模板进行渲染, ...
- python_08 函数式编程、高阶函数、map、filter、reduce函数、内置函数
函数式编程 编程方法论: 1.面向过程 找到解决问题的入口,按照一个固定的流程去模拟解决问题的流程 (1).搜索目标,用户输入(配偶要求),按照要求到数据结构内检索合适的任务 (2)表白,表白成功进入 ...
- 大数据处理算法--Bloom Filter布隆过滤
1. Bloom-Filter算法简介 Bloom-Filter,即布隆过滤器,1970年由Bloom中提出.它可以用于检索一个元素是否在一个集合中. Bloom Filter(BF)是一种空间效率很 ...
- 数组方法map(映射),reduce(规约),foreach(遍历),filter(过滤)
数组方法map(映射),reduce(规约),foreach(遍历),filter(过滤) map()方法返回一个由原数组中每一个元素调用一个指定方法后返回的新数组 reduce()方法接受一个函数作 ...
随机推荐
- IntelliJ IDEA常用统一设置2-Inspections检查设置(Linux/Mac/Windows)
Inspections检查设置功能,能检查一些普通问题,比如代码风格等等.当然,这个虽然没有CheckStyle这些插件专业,但也是另一种选择. 官方参考:https://www.jetbrains. ...
- Eval is evil ('Eval是魔鬼') --- eval()函数
Eval is evil ('Eval是魔鬼') eval() 函数可计算某个字符串,并执行其中的的 JavaScript 代码.语法:eval(string): eval的使用场合是什么呢?有时候我 ...
- Div 浮动到另一个div之上
转自原文Div 浮动到另一个div之上 <html xmlns="http://www.w3.org/1999/xhtml"> <head> <met ...
- ios中表示private
在.m中写成 如下形式既为私有的形式 @interface ViewController () 这里只是声明类名和括号即可 /////方法等 @end
- Hadoop 2.2.0集群搭建
一.环境说明 1.虚拟机平台:VMware10 2.Linux版本号:ubuntu-12.04.3-desktop-i386 3.JDK:jdk1.7.0_51 4.Hadoop版本号:2.2.0 5 ...
- C# 解析迅雷链接成正常的Http链接
目前热门剧司马懿第一集的迅雷下载地址是: thunder://QUFodHRwOi8vZGwxMjIuODBzLmltOjkyMC8xNzA2L1vlpKflhptTU+mprOaHv+S5i+WGm ...
- iOS UI08_tableView省市区字典数组
北京 1 北京市 1 西城区 1 东城区 2 崇文区 3 宣武区 4 朝阳区 5 丰台区 6 石景山区 7 海淀区 8 门头沟区 9 房山区 10 通州区 11 顺义区 12 昌平区 13 大兴区 1 ...
- JavaScript闭包其一:闭包概论 函数式编程中一些基本定义
http://www.nowamagic.net/librarys/veda/detail/1707前面介绍了作用域链和变量对象,现在再讲闭包就容易理解了.闭包其实大家都已经谈烂了.尽管如此,这里还是 ...
- Selenium系列之--05 录制脚本并导出
一.下载Firefox Firefox官方下载地址:http://www.firefox.com.cn/download/#more,下载延长支持版. 二.下载插件 Selenium本身有录制功能组件 ...
- C#数据类型与数据库字段类型对应
数据库 C#程序 int int32 text string bigint int64 binary System.Byte[] bit Boolean char string datetime Sy ...