php - 为什么 FILTER_VALIDATE_DOMAIN 允许使用点、表情符号、空值、特殊字符等字符?

标签 php filter-var

我已经使用 FILTER_VALIDATE_DOMAIN 来验证域,但它允许所有字符,如空格、特殊字符、空值似乎不起作用

这里有一些例子都没有返回 bool 值。

var_dump(filter_var("0", FILTER_VALIDATE_DOMAIN));
var_dump(filter_var('test', FILTER_VALIDATE_DOMAIN));
var_dump(filter_var('test test', FILTER_VALIDATE_DOMAIN));
var_dump(filter_var('@', FILTER_VALIDATE_DOMAIN));
var_dump(filter_var('🐲', FILTER_VALIDATE_DOMAIN));

我希望应该返回 false。

最佳答案

插入条件 FILTER_FLAG_HOSTNAME

var_dump(filter_var("0", FILTER_VALIDATE_DOMAIN, FILTER_FLAG_HOSTNAME));
var_dump(filter_var('test', FILTER_VALIDATE_DOMAIN, FILTER_FLAG_HOSTNAME));
var_dump(filter_var('test test', FILTER_VALIDATE_DOMAIN, FILTER_FLAG_HOSTNAME));
var_dump(filter_var('@', FILTER_VALIDATE_DOMAIN, FILTER_FLAG_HOSTNAME));
var_dump(filter_var('🐲', FILTER_VALIDATE_DOMAIN, FILTER_FLAG_HOSTNAME));

关于php - 为什么 FILTER_VALIDATE_DOMAIN 允许使用点、表情符号、空值、特殊字符等字符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56737679/

相关文章:

php - SQLSTATE[HY000] [2002] 连接尝试失败.. - 尝试从本地连接到远程服务器时

php - 编辑表单以清理/验证电话号码

php - 如何将php数组保存到mysql表中?

javascript - 自动刷新 Controller 和 View Yii

php - Laravel 排队作业,在执行时间之前执行它

php - 使用 PHP 验证非私有(private) IP 地址

PHP 何时使用 filter_var 而不是内置 php 函数

PHP:创建自定义 filter_var() 常量

PHP filter_var 和 RFC 5322

javascript - JS变量转PHP转Mysql查询