php filter 安全过滤函数
php 利用filter 扩展编写的参数处理静态类,欢迎使用。希望大家看得开心,用得放心。
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/