PHP | filter_input_array()函数
filter_input_array()函数是PHP的一个内置函数,用于获取外部变量(例如从表单输入)并在指定时对其进行过滤。此函数类似于 filter_input()函数,但唯一的区别是 filter_input() 过滤单个值,但在 filter_input_array() 中根据提供的选项过滤整个数组。它对于检索/过滤许多值而不是多次调用 filter_input() 很有用。这是PHP中的新功能,仅适用于PHP 5.2 或更高版本的PHP。
句法:
mixed filter_input_array( $type_of_data, $definition, $add_empty_parameter )
参数:该函数接受上面提到和下面描述的三个参数:
- type_of_data:它是必需的参数。它保存要检查的数据的输入类型。可用的选项是:
- INPUT_GET
- 输入_POST
- INPUT_COOKIE
- 输入服务器
- INPUT_ENV
- 定义:可选参数。它指定了一组过滤器参数或参数。作为变量名的有效数组键和作为过滤器名称或 ID 的有效值,或指定过滤器、标志和选项的数组。此参数也可以是单个过滤器名称/ID,就像 filter_input() 然后输入数组中的所有值都由指定的过滤器过滤。
- add_empty_parameter:可选参数。它是一个布尔参数。当它设置为 True 时,它会将缺失的键作为 NULL 添加到返回值中。其默认值为 True。
返回值:它返回一个包含成功和失败变量值的数组,它返回 False。如果 type 指定的输入数组未填充,则如果未指定 FILTER_NULL_ON_FAILURE 标志,则函数返回 NULL,否则返回 False。对于其他失败,返回 False。
下面的程序说明了PHP的 filter_input_array()函数:
方案一:
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_input_array(INPUT_GET, $filters));
?>
输出:
注意:此示例可能无法在在线 IDE 上给出预期结果,因为它不支持在 GET 或 POST 方法中传递参数。因此,尝试在某些PHP托管服务器或本地主机中运行它,并通过 GET 或 POST 方法传递参数的值。
方案二:
数据来自POST方法:
$_POST = array(
'product_id' => '234',
'component' => array('10'),
'version' => '<2.8.9',
'array2' => array('45', '1'),
'scalar_data' => '2',
);
FILTER_SANITIZE_ENCODED,
'array1' => array(
'filter' => FILTER_VALIDATE_INT,
'flags' => FILTER_REQUIRE_ARRAY,
'options' => array(
'min_range' => 1,
'max_range' => 10
)
),
'version' => FILTER_SANITIZE_ENCODED,
'noparameter' => FILTER_VALIDATE_INT,
'scalar_data' => array(
'filter' => FILTER_VALIDATE_INT,
'flags' => FILTER_REQUIRE_SCALAR,
),
'array2' => array(
'filter' => FILTER_VALIDATE_INT,
'flags' => FILTER_REQUIRE_ARRAY,
)
);
$allinputs = filter_input_array(INPUT_GET, $args);
var_dump($allinputs);
echo "\n";
?>
输出:
注意:此示例可能无法在在线 IDE 上给出预期结果,因为它不支持在 GET 或 POST 方法中传递参数。因此,尝试在某些PHP托管服务器或本地主机中运行它,并通过 GET 或 POST 方法传递参数的值。
参考文献:HTTP:// PHP.NET /手动/ EN /函数.filter输入阵列。 PHP