`
chinacode
  • 浏览: 29607 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

php filter 安全过滤函数

    博客分类:
  • php
阅读更多

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

分享到:
评论

相关推荐

    php常用的安全过滤函数集锦

    php常用的安全过滤函数集锦强调了即便在使用框架的情况下,开发人员依然需要了解并掌握一些基础而关键的安全过滤函数。在开发中,虽然框架如Laravel、Symfony等提供了一定程度的安全保障,例如自动过滤输入数据、...

    PHP程序设计-3期(KC016) PHP高级应用-过滤函数3-常见问题.docx

    PHP提供了多种过滤函数,如`filter_var()`, `filter_input()`, `filter_var_array()`等,它们各自针对不同类型的变量进行过滤。例如: - `filter_var()` 是一个通用的过滤函数,可以直接对变量进行过滤。你可以指定...

    PHP程序设计-3期(KC016) PHP高级应用-过滤函数2-常见问题.docx

    在PHP程序设计中,过滤函数是处理用户输入数据的关键部分,确保数据安全和防止注入攻击。在PHP高级应用中,了解并熟练掌握过滤函数是非常重要的。文档“PHP程序设计-3期(KC016) PHP高级应用-过滤函数2-常见问题....

    PHP Filter 函数

    ### PHP Filter 函数详解 #### 一、PHP Filter 概述 PHP Filter 是一组用于处理来自不可信源数据(如用户输入)的功能强大的工具集合。它可以帮助开发者在处理潜在危险数据时提高安全性。 #### 二、PHP Filter ...

    PHP Filter过滤器全面解析

    PHP Filter过滤器是PHP中用于处理和验证非安全来源数据的工具,特别是在处理用户输入时。这些过滤器有助于确保应用程序接收到的是预期的数据类型,从而提高应用的安全性和稳定性。过滤器扩展使得数据过滤过程变得...

    PHP程序设计-3期(KC016) PHP高级应用-过滤函数2-拓展知识.doc

    在PHP编程语言中,过滤函数是一组用于验证和清理输入数据的工具,它们确保了数据的安全性和一致性。在PHP高级应用中,过滤函数的使用是至关重要的,特别是当我们需要对数据进行特定处理或自定义验证时。本文将深入...

    PHP程序设计-3期(KC016) PHP高级应用-过滤函数1-拓展知识.doc

    在PHP编程中,过滤函数是处理输入数据的重要工具,它们帮助开发者确保数据的安全性和准确性。在文档"PHP程序设计-3期(KC016) PHP高级应用-过滤函数1-拓展知识.doc"中,主要介绍了PHP中的过滤函数及其用途。这些...

    linux 下php的filter过滤扩展

    4. 过滤文本:使用`filter_string()`函数对文本进行过滤。此函数会遍历文本,检查是否存在敏感词,并根据配置进行替换或删除。 5. 处理结果:过滤后的文本可以安全地显示给用户,确保不会出现敏感信息。 为了提高...

    PHP程序设计-3期(KC016) PHP高级应用-过滤函数3-拓展知识.doc

    在PHP程序设计中,过滤函数是用于验证和清理输入数据的重要工具,确保应用程序接收的数据是安全和有效的。这里我们将深入探讨两个主要的过滤函数:`filter_input` 和 `filter_var`,并分析它们的区别和应用场景。 `...

    PHP程序设计-3期(KC016) PHP高级应用-过滤函数1-常见问题.docx

    在PHP程序设计中,过滤函数是处理用户输入数据的关键部分,以确保数据的安全性和准确性。在PHP高级应用中,我们经常会遇到对输入数据进行验证和过滤的需求,这正是`filter_var`函数及其相关函数的作用所在。`filter_...

    PHP过滤器 filter_has_var() 函数用法实例分析

    在PHP编程中,过滤器(Filter)是一种用于验证和清理用户输入数据的机制,它确保了数据的安全性和一致性。`filter_var()` 和 `filter_has_var()` 是PHP过滤器扩展中的两个重要函数,它们帮助开发者检查和处理输入...

    PHP filter_var() 函数 Filter 函数

    `filter_var()` 函数是 PHP 中用于数据过滤和验证的核心工具。它允许开发者根据预定义的过滤器或者自定义规则来处理和验证变量。这个函数的主要目的是确保输入数据的安全性和准确性,防止潜在的安全威胁,例如 SQL ...

    php 过滤器实现代码

    针对这两种数据类型,PHP提供了filter_input系列和filter_var系列函数进行过滤和验证。其中,filter_input系列函数主要处理外部变量,而filter_var系列函数则处理任意数据。 在PHP中,数据验证分为两种类型:...

    php过滤请求中数据方法

    这两个函数都属于PHP的Filter扩展,用于验证和过滤变量。 1. `filter_var()`: 这个函数可以直接作用于任何变量,例如: ```php $data = $_POST['username']; $filtered_data = filter_var($data, FILTER_SANITIZE_...

    php中filter函数验证、过滤用户输入的数据

    PHP提供了一套强大的过滤器(Filter)函数来帮助开发者验证和过滤来自非安全源的数据,如用户输入。本文将详细介绍PHP中的`filter`函数及其常见用法。 ### 1. `filter_var`函数 `filter_var`函数是PHP过滤器的核心...

    codeigniter 辅助函数 - 敏感词过滤

    // 过滤函数,将敏感词替换为*号 foreach ($sensitive_words as $word) { $str = str_replace($word, '*', $str); } return $str; } } ``` 在这个示例中,`filter_sensitive_words()`函数接收一个字符串参数...

    PHP filter_var 验证邮箱、IP、URL的格式

    本文将深入探讨PHP中的`filter_var`函数,它是一个强大的数据过滤和验证工具,能够帮助开发者确保输入的数据符合预期的格式,从而提高程序的安全性和稳定性。我们将详细讲解如何使用`filter_var`来验证邮箱、IP地址...

    PHP 过滤生僻字和特殊字符

    总的来说,过滤生僻字和特殊字符是保障PHP应用安全性和稳定性的重要步骤。开发者需要根据项目需求和场景选择合适的方法,确保数据的正确处理和存储。通过不断实践和学习,可以更好地掌握这些技巧,提升代码质量。

Global site tag (gtag.js) - Google Analytics