跳至主要內容

PHP 之 filter_var 函数

逸尘.Lycodx大约 2 分钟后端PHP

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 函数返回值的类型取决于应用的过滤器类型,一般情况下可能是以下类型之一:

  • 布尔型:truefalse
  • 整数型:返回过滤后的整数值,或者返回 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_EMAILFILTER_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.phpopen in new window

注意

filter_var 函数只是对输入数据进行简单的格式验证和过滤,不能保证数据的安全性。在处理敏感数据(例如用户输入)时,仍然需要进行其他的安全措施,如数据验证和防止 SQL 注入等。

上次编辑于: