php filter 安全过滤函数
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');} }?
参考地址:http://www.php.net/manual/en/book.filter.php
出处:?马丁博客[http://www.blags.org/]
本文链接地址:?http://www.blags.org/php-security-filter-function/