PHP 之 filter_var 函数
大约 2 分钟
PHP之filter_var函数
一、说明
filter_var()函数使用特定的过滤器过滤一个变量
提示
PHP 版本 >= 5.2.0
二、语法
filter_var(mixed $value, int $filter = FILTER_DEFAULT, array|int $options = 0): mixed
参数说明
$value:要验证或过滤的变量或值。 注意:标量值在过滤前,会被转换成字符串。$filter:要应用的过滤器类型,可以是预定义的过滤器常量或自定义的过滤器名称,如果未指定,则默认为FILTER_DEFAULT。$options:可选参数,用于指定额外的选项或过滤器参数
filter_var 函数返回值的类型取决于应用的过滤器类型,一般情况下可能是以下类型之一:
- 布尔型:
true或false。 - 整数型:返回过滤后的整数值,或者返回
false。 - 浮点型:返回过滤后的浮点值,或者返回
false。 - 字符串型:返回过滤后的字符串值,或者返回
false。
三、使用示例
1、 FILTER_VALIDATE_EMAIL验证一个字符串是否为有效的电子邮件地址
$email = 'user@example.com';
if (filter_var($email, FILTER_VALIDATE_EMAIL)) {
echo "$email 是一个有效的电子邮件地址。";
} else {
echo "$email 不是一个有效的电子邮件地址。";
}
2、 FILTER_VALIDATE_URL:验证一个字符串是否为有效的 URL 地址
$url = 'http://www.example.com';
if (filter_var($url, FILTER_VALIDATE_URL)) {
echo "$url 是一个有效的 URL 地址。";
} else {
echo "$url 不是一个有效的 URL 地址。";
}
FILTER_VALIDATE_EMAIL 、FILTER_VALIDATE_URL 都是php中的一个预定义常量,常用的常量有:
FILTER_VALIDATE_BOOLEAN:验证布尔值。FILTER_VALIDATE_INT:验证整数。FILTER_VALIDATE_FLOAT:验证浮点数。FILTER_VALIDATE_URL:验证 URL 地址。FILTER_VALIDATE_IP:验证 IP 地址。FILTER_SANITIZE_STRING:过滤字符串中的 HTML 标签和特殊字符。FILTER_SANITIZE_NUMBER_INT:过滤字符串中的非数字字符。FILTER_SANITIZE_EMAIL:过滤字符串中的非法邮箱字符。FILTER_SANITIZE_URL:过滤字符串中的非法 URL 字符。
相关文档:https://www.php.net/manual/en/filter.constants.php
注意
filter_var 函数只是对输入数据进行简单的格式验证和过滤,不能保证数据的安全性。在处理敏感数据(例如用户输入)时,仍然需要进行其他的安全措施,如数据验证和防止 SQL 注入等。