Home > php教程 > php手册 > body text

php 利用filter 扩展编写的参数处理类

WBOY
Release: 2016-06-13 11:40:07
Original
913 people have browsed it

php 利用filter 扩展编写的参数处理类

Copy to Clipboard引用的内容:[www.bkjia.com] /**
* @参数验证函数
* @method:
* @license http://www.blags.org/
* @created:2011年07月02日 11时00分
* @copyright 1997-2011 The Martin Group
* @author Martin
* */
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');
}

}
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Recommendations
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template