php filter 保险过滤函数
程序员文章站
2022-05-10 13:04:37
...
php filter 安全过滤函数
php 利用filter 扩展编写的参数处理静态类,欢迎使用。
希望大家看得开心,用得放心。
* */ 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/
相关文章
相关视频
专题推荐
-
独孤九贱-php全栈开发教程
全栈 170W+
主讲:Peter-Zhu 轻松幽默、简短易学,非常适合PHP学习入门
-
玉女心经-web前端开发教程
入门 80W+
主讲:灭绝师太 由浅入深、明快简洁,非常适合前端学习入门
-
天龙八部-实战开发教程
实战 120W+
主讲:西门大官人 思路清晰、严谨规范,适合有一定web编程基础学习
上一篇: “破甲”启动 IBM数据库拉开架势与甲骨文全面竞争
下一篇: 使用存储过程实现循环插入100条记录
网友评论
文明上网理性发言,请遵守 新闻评论服务协议
我要评论