📅  最后修改于: 2023-12-03 15:18:19.940000             🧑  作者: Mango
在 PHP 中,我们经常需要对输入的数据进行过滤、验证、处理等操作。PHP内置了许多函数,其中就有非常方便的过滤器filter_var()。
filter_var() 的语法非常简单:
mixed filter_var ( mixed $variable [, int $filter = FILTER_DEFAULT [, mixed $options ]] )
第一个参数是需要过滤的变量,可以是任何类型的变量。第二个参数是过滤器类型,是可选参数,如果不设置的话默认为FILTER_DEFAULT。第三个参数用于传递额外的选项,也是可选的。该函数的返回值类型是mixed,表示返回值的类型是不确定的,可以是任何类型。
我们来看一下 filter_var() 函数的几个使用示例。
我们可以使用 FILTER_SANITIZE_STRING 过滤器来过滤一个字符串,该过滤器会删除所有HTML标签和不安全字符。
$name = '<b>Tom</b>';
$name = filter_var($name, FILTER_SANITIZE_STRING);
echo $name; // 输出 "Tom"
我们可以使用 FILTER_VALIDATE_EMAIL 过滤器来验证一个邮箱地址。
$email = 'tom@example.com';
if (filter_var($email, FILTER_VALIDATE_EMAIL)) {
echo '有效的邮箱地址';
} else {
echo '无效的邮箱地址';
}
我们可以使用 FILTER_VALIDATE_REGEXP 过滤器来使用正则表达式进行过滤。
$age = '40';
if (filter_var($age, FILTER_VALIDATE_REGEXP, array("options"=>array("regexp"=>"/^[0-9]+$/")))) {
echo '年龄是一个数字';
} else {
echo '年龄不是一个数字';
}
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() 函数来进行。