# filter_input

(PHP 5 >= 5.2.0, PHP 7, PHP 8)

filter_input — 通过名称获取特定的外部变量，并且可以通过过滤器处理它

### 说明

filter_input(
int `$type`,
string `$var_name`,
int `$filter` = `FILTER_DEFAULT`,
array|int `$options` = 0
): mixed

### 参数

`type`
  `INPUT_*` 常量之一。
  警告

  在用户对超全局变量进行任何修改之前，正在过滤的超全局变量内容是 SAPI 提供的原始“原始”内容。要过滤修改后的超全局变量，请使用 filter_var()。

`var_name`
  在相应 `type` 的超全局变量中要过滤的变量名称。
`filter`
  要应用的过滤器。可以使用 `FILTER_VALIDATE_*` 常量作为验证过滤器，使用 `FILTER_SANITIZE_*` 或 `FILTER_UNSAFE_RAW` 作为清理过滤器，也可以使用 `FILTER_CALLBACK` 作为自定义过滤器。

  > 注意: 默认值为 `FILTER_DEFAULT`，是 `FILTER_UNSAFE_RAW` 的别名。这将导致默认情况下不进行过滤。

`options`
  要么是选项的关联 array，要么是过滤器 flag 常量 `FILTER_FLAG_*` 的位掩码。 如果 `filter` 接受选项（option），则可以使用数组的 `"flags"` 字段提供 flag。

### 返回值

成功时返回过滤后的变量。如果变量未设置，则返回 `false`。失败时也返回 `false`，当使用 `FILTER_NULL_ON_FAILURE` flag 时返回 `null`。

### 示例

示例 #1 filter_input() 示例

`<?php
$search_html = filter_input(INPUT_GET, 'search', FILTER_SANITIZE_SPECIAL_CHARS);
$search_url = filter_input(INPUT_GET, 'search', FILTER_SANITIZE_ENCODED);
echo "You have searched for $search_html.\n";
echo "<a href='?search=$search_url'>Search again.</a>";
?>`

以上示例的输出类似于：

    You have searched for Me &#38; son.
    <a href='?search=Me%20%26%20son'>Search again.</a>

### 参见

- filter_input_array() - 获取一系列外部变量，并且可以通过过滤器处理它们
- filter_var() - 使用特定的过滤器过滤一个变量
- filter_var_array() - 获取多个变量并且过滤它们
- 验证过滤器 `FILTER_VALIDATE_*`
- 清理过滤器 `FILTER_SANITIZE_*`

`↑` and `↓` to navigate • `Enter` to select • `Esc` to close • `/` to open