PHP 过滤器函数

PHP filter_var() 函数用于使用指定的过滤器过滤变量。

语法

filter_var(var, filter, options) 

参数

var必填。 指定要过滤的变量。
filter可选。 指定要应用的过滤器的 ID。请参阅过滤器列表。如果省略,将使用 FILTER_DEFAULT,相当于 FILTER_UNSAFE_RAW。这将导致默认情况下不进行过滤。
options可选。 指定选项的关联数组或标志的按位析取。如果过滤器接受选项,则可以在数组的"flags"字段中提供标志。

返回值

返回过滤后的数据,如果过滤器失败,则返回 false。

示例:验证浮点数

在下面的示例中,filter_var() 函数用于验证给定的变量。

<?php
function validate_age($age) {
  $opt = 
  array(
    'options' => array(
      //过滤器失败时返回的值
      'default' => "Age is not valid",

      //这里有其他选项
      "min_range"=>1,
      "max_range"=>100
    )
  );

  //检查年龄验证
  if (!filter_var($age, FILTER_VALIDATE_FLOAT, $opt) === false)
    echo filter_var($age, FILTER_VALIDATE_FLOAT, $opt)."\n";
}

//验证年龄
validate_age(50);
validate_age(75);
validate_age(150);
validate_age("abc");
?> 

上述代码的输出将是:

50
75
Age is not valid
Age is not valid 

示例:清理和验证电子邮件地址

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

<?php
function validate_email($email) {
  //从电子邮件中删除所有非法字符
  $email = filter_var($email, FILTER_SANITIZE_EMAIL);
    
  //验证电子邮件
  if (!filter_var($email, FILTER_VALIDATE_EMAIL) === false) {
    echo("$email is a valid email address\n");
  } else {
    echo("$email is not a valid email address\n");
  }
}

//验证电子邮件
validate_email("abc@example.com");
validate_email("abc@example");
validate_email("abc@");
?> 

上述代码的输出将是:

abc@example.com is a valid email address
abc@example is not a valid email address
abc@ is not a valid email address 

示例:清理和验证 URL

在下面的示例中,该函数用于验证给定的 URL。

<?php
function validate_URL($url) {
  //删除url中所有非法字符
  $url = filter_var($url, FILTER_SANITIZE_URL);
    
  //验证url
  if (!filter_var($url, FILTER_VALIDATE_URL) === false) {
    echo("$url is a valid URL\n");
  } else {
    echo("$url is not a valid URL\n");
  }
}

//验证 URL
validate_URL("https://www.yxjc123.com");
validate_URL("yxjc123");
?> 

上述代码的输出将是:

https://www.yxjc123.com is a valid URL
yxjc123 is not a valid URL 

示例:验证 IP 地址

在下面的示例中,该函数用于验证 IP 地址。

<?php
function validate_IP($ip) {
  //验证IP地址
  if (!filter_var($ip, FILTER_VALIDATE_IP) === false) {
    echo("IP address '$ip' is considered valid\n");
  } else {
    echo("$ip is not a valid IP address\n");
  }
}

//验证IP地址
validate_IP("127.0.0.1");
validate_IP("42.42");
?> 

上述代码的输出将是:

IP address '127.0.0.1' is considered valid
42.42 is not a valid IP address