我知道这个电子邮件地址有效,因为我发了邮件给自己。那么为什么这段代码没有按照我的想法去做呢:
$email = 'enquiry_b337575afd6632d06ea58b9b088f35ee6c5682ba5ec768bf3b80c07db2da257d@uat.abc.com';
if (filter_var($email, FILTER_VALIDATE_EMAIL))
{
print 'is valid';
}
else
{
print 'is not valid';
}
打印“无效”。但我很确定电子邮件地址是正确的。这可能是太长了,他们检查一些特定的长度?因为我上次检查电子邮件地址的时间长度最多为255个字符。
任何人都知道为什么会这样吗?
更新1
如果我把它缩短到这个:
$email = 'enquiry_b337575afd6632d06ea58b9b088f35ee6c5682ba5ec768bf3b80c07d@uat.abc.com';
然后它有效。所以必须有某种最大长度... ...
答案 0 :(得分:0)
我在这里找到答案:PHP FILTER_VALIDATE_EMAIL max length
问题是本地部分(@之前的部分)长度可能只有64个字符。尽管它在Centos上工作。 PHP验证函数有自己的检查限制。