📅  最后修改于: 2023-12-03 14:45:15.438000             🧑  作者: Mango
filter_input_array()
函数将一个一维数组中的多个输入过滤器应用到指定的输入变量,返回一个过滤后的变量数组。
filter_input_array()
函数必须始终有两个参数,第一个参数指定要过滤的输入类型,比如 INPUT_GET
、INPUT_POST
和 INPUT_COOKIE
等。第二个参数是一个包含过滤规则的数组,规则包括过滤器类型、选项和过滤器标志。
filter_input_array ( int $type , mixed $definition [, bool $add_empty = true ] ) : mixed
以下是 filter_input_array()
函数的参数列表:
$type
:必填,指定要过滤的输入类型,可以使用 INPUT_GET
、INPUT_POST
、INPUT_COOKIE
、INPUT_SERVER
或 INPUT_ENV
等 PHP 预定义常量。
$definition
:必填,一个数组,定义的过滤器类型、选项和过滤器标志,包括:
filter
:必需。是要使用的过滤器 ID。flags
:可选。规定如何处理无效输入。这里的有效值由过滤器指定。在使用多个过滤器时,可以使用此选项来避免由于无效输入而破坏其他验证方法。此选项是自 PHP 5.2.0 起添加的。options
:可选。选项是由某些过滤器使用并定义的,具体取决于所使用的过滤器。$add_empty
:可选,布尔值,表示是否将空值添加到结果数组。默认值为 true
。
filter_input_array()
函数将返回过滤后的结果数组,如果未找到任何符合条件的输入变量,则返回 NULL
。
下面是一个使用 filter_input_array()
进行数据过滤的示例:
<?php
//定义要验证的规则
$filters = array(
'name' => array('filter' => FILTER_SANITIZE_STRING),
'email' => array('filter' => FILTER_VALIDATE_EMAIL),
'age' => array('filter' => FILTER_VALIDATE_INT,
'options' => array('min_range' => 1, 'max_range' => 120)),
'url' => array('filter' => FILTER_VALIDATE_URL),
);
//将过滤器应用到 $_POST
$data = filter_input_array(INPUT_POST, $filters);
//输出过滤后的结果
print_r($data);
?>
以上代码将从 $_POST
中获取数据,并应用定义好的过滤器规则。例如,'name'
的过滤器类型为 FILTER_SANITIZE_STRING
,'email'
的过滤器类型为 FILTER_VALIDATE_EMAIL
,'age'
的过滤器类型为 FILTER_VALIDATE_INT
,并且限制年龄必须在 1 到 120 之间,'url'
的过滤器类型为 FILTER_VALIDATE_URL
。
最后,输出过滤后的结果。如果输入不符合规则,则对应的键值将会是 NULL
。
filter_input_array()
是 PHP 中用于过滤和验证用户输入的重要函数,它可以方便地将多个输入过滤器应用到指定的输入变量中。开发者可以根据不同情况,定义不同的过滤器规则,从而达到保护应用程序的目的。