📜  php filter_var name - PHP (1)

📅  最后修改于: 2023-12-03 15:18:19.940000             🧑  作者: Mango

PHP过滤器:filter_var()函数

在 PHP 中,我们经常需要对输入的数据进行过滤、验证、处理等操作。PHP内置了许多函数,其中就有非常方便的过滤器filter_var()。

filter_var()的语法

filter_var() 的语法非常简单:

mixed filter_var ( mixed $variable [, int $filter = FILTER_DEFAULT [, mixed $options ]] )

第一个参数是需要过滤的变量,可以是任何类型的变量。第二个参数是过滤器类型,是可选参数,如果不设置的话默认为FILTER_DEFAULT。第三个参数用于传递额外的选项,也是可选的。该函数的返回值类型是mixed,表示返回值的类型是不确定的,可以是任何类型。

filter_var()的使用示例

我们来看一下 filter_var() 函数的几个使用示例。

示例 #1:过滤一个字符串

我们可以使用 FILTER_SANITIZE_STRING 过滤器来过滤一个字符串,该过滤器会删除所有HTML标签和不安全字符。

$name = '<b>Tom</b>';
$name = filter_var($name, FILTER_SANITIZE_STRING);
echo $name; // 输出 "Tom"
示例 #2:验证一个邮箱地址

我们可以使用 FILTER_VALIDATE_EMAIL 过滤器来验证一个邮箱地址。

$email = 'tom@example.com';
if (filter_var($email, FILTER_VALIDATE_EMAIL)) {
    echo '有效的邮箱地址';
} else {
    echo '无效的邮箱地址';
}
示例 #3:使用正则表达式过滤

我们可以使用 FILTER_VALIDATE_REGEXP 过滤器来使用正则表达式进行过滤。

$age = '40';
if (filter_var($age, FILTER_VALIDATE_REGEXP, array("options"=>array("regexp"=>"/^[0-9]+$/")))) {
    echo '年龄是一个数字';
} else {
    echo '年龄不是一个数字';
}
filter_var()的过滤器类型

filter_var() 的过滤器类型非常多,以下是一些常用的过滤器类型:

  • FILTER_VALIDATE_BOOLEAN:验证布尔值
  • FILTER_VALIDATE_EMAIL:验证邮箱地址
  • FILTER_VALIDATE_FLOAT:验证浮点数
  • FILTER_VALIDATE_INT:验证整数
  • FILTER_VALIDATE_IP:验证IP地址
  • FILTER_SANITIZE_EMAIL:删除邮箱地址中的非法字符
  • FILTER_SANITIZE_ENCODED:URI编码字符串
  • FILTER_SANITIZE_NUMBER_FLOAT:删除字符串中的非数字字符,保留小数点
  • FILTER_SANITIZE_NUMBER_INT:删除字符串中的非数字字符
  • FILTER_SANITIZE_STRING:删除字符串中的HTML标签和不安全字符
  • FILTER_SANITIZE_URL:删除URL中的非法字符

更多的过滤器类型可以在 PHP 官方文档中查看。

总结

filter_var() 是PHP非常有用的一个内置函数,可以方便地对输入的数据进行验证、过滤、处理等操作,减少我们的代码工作量。如果您在项目中需要对输入数据进行处理,不妨使用 filter_var() 函数来进行。