我已经使用 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/