PHP filter_input() 函数


定义和用法

filter_input() 函数从脚本外部获取输入(比如表单输入),并进行过滤。

该函数用于对来自非安全来源的变量进行验证,比如用户的输入。

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

  • INPUT_GET
  • INPUT_POST
  • INPUT_COOKIE
  • INPUT_ENV
  • INPUT_SERVER
  • INPUT_SESSION(尚未推行)
  • INPUT_REQUEST(尚未推行)

如果成功,则返回被过滤的数据。如果失败,则返回 FALSE。如果 "variable" 参数未设置,则返回 NULL。

语法

filter_input(input_type, variable, filter, options)

参数 描述
input_type 必需。规定输入类型。参见上面的列表中可能的类型。
variable 必需。规定要过滤的变量。
filter 可选。规定要使用的过滤器的 ID。默认是 FILTER_SANITIZE_STRING。参见 完整的 PHP Filter 参考手册,查看可能的过滤器。

过滤器 ID 可以是 ID 名称(比如 FILTER_VALIDATE_EMAIL)或 ID 号(比如 274)。

options 可选。规定一个包含标志/选项的关联数组或者一个单一的标志/选项。检查每个过滤器可能的标志和选项。

实例

在本实例中,我们使用 filter_input() 函数来过滤一个 POST 变量。所接收的 POST 变量是合法的 e-mail 地址:

<?php
if (!filter_input(INPUT_POST, 'email', FILTER_VALIDATE_EMAIL))
{
echo "E-Mail is not valid";
}
else
{
echo "E-Mail is valid";
}
?>

代码的输出如下所示:

E-Mail is valid