php过滤机制,php过滤函数

php 利用filter 扩展编写的参数处理类。

http://www.blags.org/php-security-filter-function/

exp:

首先引入文件

include 'filter.php'

$email = CFilter::Email($_POST['email']);

验证成功返回字符串,反之返回false。

1.[代码]php filter

/**

* @参数验证函数

* @method:

* @license http://www.blags.org/

* @created:2011年07月02日 11时00分

* @copyright 1997-2011 The Martin Group

* @author Martin

* */

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');

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值