php 利用filter 扩展编写的参数处理类
发布时间:2020-12-13 20:53:28 所属栏目:PHP教程 来源:网络整理
导读:php 利用filter 扩展编写的参数处理类 Copy to Clipboard 引用的内容: [www.veryhuo.com] ?php /** * @参数验证函数 * @method: * @license http://www.blags.org/ * @created:2011年07月02日 11时00分 * @copyright 1997-2011 The Martin Group * @author
php 利用filter 扩展编写的参数处理类 Copy to Clipboard <?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,$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'); } } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |