php filter 保险过滤函数

WBOY
풀어 주다: 2016-06-13 13:11:48
원래의
821명이 탐색했습니다.

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/

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿