PHP 过滤器函数

PHP filter_put()函数通过名称获取特定的外部变量,并选择性地对其进行过滤。

语法

filter_input(type, var_name, filter, options) 

参数

type必需. 指定输入类型,它可以是以下其中一种:
  • INPUT_GET
  • INPUT_POST
  • INPUT_COOKIE
  • INPUT_SERVER
  • INPUT_ENV
var_name必需. 指定要检查的变量名
filter可选. 指定要应用的过滤器的ID。请参阅过滤器列表。如果省略,将使用FILTER_DEFAULT,相当于FILTER_UNSAFE_RAW。这将导致默认情况下不进行过滤。
options可选. 指定选项的关联数组或标志的逐位析取。如果过滤器接受选项,则可以在数组的“flags”字段中提供标志。

返回值

成功时返回变量的值,如果筛选器失败则返回false,如果未设置var_name变量则返回null。如果使用FILTER_NUL_ON_FAILURE标志,则如果未设置变量,则返回false;如果过滤器失败,则返回NULL。

例子: 验证电子邮箱

在下面的示例中,filter_put() 函数用于验证电子邮件。

<?php
//使用过滤器验证电子邮件
if (isset($_GET["email"])) {
  if (!filter_input(INPUT_GET, "email", 
                    FILTER_VALIDATE_EMAIL) === false) {
    echo("Email is valid");
  } else {
    echo("Email is not valid");
  }
}
?> 

输出:

Email is valid 

例子:  filter_input() 例子

在下面的示例中,filter_put()函数用于清除给定的变量。

<?php
//输入类型:INPUT_GET,输入名称:search
//过滤器名称:FILTER_SANITIZE_SPECIAL_CHARS
$search_html = filter_input(INPUT_GET, 'search', 
                            FILTER_SANITIZE_SPECIAL_CHARS);

//输入类型:INPUT_GET,输入名称:search
//过滤器名称:FILTER_SANITIZE_ENCODED
$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>