• 代码千万行,注释第一行。命名不规范,同事泪千行。

PHP 过滤器(Filter)对来自非安全来源的数据进行验证和过滤。

PHP Secondar 6个月前 (01-18) 198次浏览 已收录 0个评论

php版本

PHP 5 >= 5.2.0, PHP 7

filter_has_var() -> 检查是否存在指定输入类型的变量。

语法

filter_has_var(type, variable)

参数

    type
  • 必需。可能的输入类型:
  • INPUT_GET
  • INPUT_POST
  • INPUT_COOKIE
  • INPUT_SERVER
  • INPUT_ENV
    variable
  • 必需。规定要检查的变量。

实例

<?php
if(!filter_has_var(INPUT_GET, "name")){
	echo("Input type does not exist");
}else{
	echo("Input type exists");
}
?>

filter_id() ->函数返回指定过滤器的 ID 号

语法

filter_id(filter_name)

 

参数

  • filter_name
  • 必需。规定被获取 ID 号的过滤器。

实例

<?php
	echo(filter_id("validate_email"));
?>

 

filter_var_array() ->函数获取多个变量,并进行过滤

语法

filter_var_array(array, args)

 

参数

    array
  • 必需。规定带有字符串键名的数组,包含要过滤的数据。
    args
  • 可选。规定过滤器参数数组。合法的数组键名是变量名,合法的值是过滤器 ID,或者规定过滤器、标志以及选项的数组。
    该参数也可以是一个单一的过滤器 ID,如果是这样,输入数组中的所有值由指定过滤器进行过滤。
    过滤器 ID 可以是 ID 名称(比如 FILTER_VALIDATE_EMAIL)或 ID 号(比如 274)。
<?php
$arr = array(
	"name" => "peter griffin",
	"age" => "41",
	"email" => "peter@example.com",
);

$filters = array(
	"name" => array(
		"filter"=>FILTER_CALLBACK,
		"flags"=>FILTER_FORCE_ARRAY,
		"options"=>"ucwords"
	),
	"age" => array(
		"filter"=>FILTER_VALIDATE_INT,
		"options"=>array(
			"min_range"=>1,
			"max_range"=>120
			)
	),
	"email"=> FILTER_VALIDATE_EMAIL,
);

print_r(filter_var_array($arr, $filters));
?>

 

filter_input() ->从脚本外部获取输入,并进行过滤

该函数可从各种来源获取输入

  • INPUT_GET
  • INPUT_POST
  • INPUT_COOKIE
  • INPUT_ENV
  • INPUT_SERVER
  • INPUT_SESSION
  • INPUT_REQUEST

语法

filter_input(input_type, variable, filter, options)

 

参数

    input_type
  • 必需。规定输入类型。参见上面的列表中可能的类型。
    variable
  • 必需。规定要过滤的变量。
    filter
  • 可选。规定要使用的过滤器的 ID。默认是 FILTER_SANITIZE_STRING。
    options
  • 可选。规定一个包含标志/选项的关联数组或者一个单一的标志/选项。检查每个过滤器可能的标志和选项。

PHP Filters

ID 名称 描述
FILTER_CALLBACK 调用用户自定义函数来过滤数据。
FILTER_SANITIZE_STRING 去除标签,去除或编码特殊字符。
FILTER_SANITIZE_STRIPPED “string” 过滤器的别名。
FILTER_SANITIZE_ENCODED URL-encode 字符串,去除或编码特殊字符。
FILTER_SANITIZE_SPECIAL_CHARS HTML 转义字符 ‘”<>& 以及 ASCII 值小于 32 的字符。
FILTER_SANITIZE_EMAIL 删除所有字符,除了字母、数字以及 !#$%&’*+-/=?^_`{|}~@.[]
FILTER_SANITIZE_URL 删除所有字符,除了字母、数字以及 $-_.+!*'(),{}|\^~[]`<>#%”;/?:@&=
FILTER_SANITIZE_NUMBER_INT 删除所有字符,除了数字和 +-
FILTER_SANITIZE_NUMBER_FLOAT 删除所有字符,除了数字、+- 以及 .,eE
FILTER_SANITIZE_MAGIC_QUOTES 应用 addslashes()。
FILTER_UNSAFE_RAW 不进行任何过滤,去除或编码特殊字符。
FILTER_VALIDATE_INT 把值作为整数来验证。
FILTER_VALIDATE_BOOLEAN 把值作为布尔选项来验证。如果是 “1”、”true”、”on” 和 “yes”,则返回 TRUE。如果是 “0”、”false”、”off”、”no” 和 “”,则返回 FALSE。否则返回 NULL。
FILTER_VALIDATE_FLOAT 把值作为浮点数来验证。
FILTER_VALIDATE_REGEXP 根据 regexp(一种兼容 Perl 的正则表达式)来验证值。
FILTER_VALIDATE_URL 把值作为 URL 来验证。
FILTER_VALIDATE_EMAIL 把值作为 e-mail 地址来验证。
FILTER_VALIDATE_IP 把值作为 IP 地址来验证,只限 IPv4 或 IPv6 或 不是来自私有或者保留的范围。

一只大萝北 , 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:PHP 过滤器(Filter)对来自非安全来源的数据进行验证和过滤。
喜欢 (0)
[]
分享 (0)
发表我的评论
取消评论
表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址