php 利用filter 扩展编写的参数处理类。
http://www.blags.org/php-security-filter-function/
exp:
首先引入文件
include 'filter.php'
$email = CFilter::Email($_POST['email']);
验证成功返回字符串,反之返回false。
- /**
- * @参数验证函数
- * @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');
- }
-
- }
|