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

时间:2019-06-24 13:30:21

标签: php filter-var

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

下面是一些示例,均不返回布尔值。

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。

1 个答案:

答案 0 :(得分:0)

插入条件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));