使用 PHP 验证电子邮件时出现问题


Issue with validate email using PHP

我有以下代码来检查用户输入是否是有效的电子邮件,可能已经有一些问题,但似乎没有人验证PHP函数。

/* check if valid email*/
public function isValidEmail($email){
    if(filter_var($email, FILTER_VALIDATE_EMAIL)) {
        return true;
    }
    return false;
}

如果我们使用此函数进行测试:

isValidEmail('some?=Wrong@mail.com') 

这应该返回false因为像?=这样的字符在电子邮件地址内。有没有更严格的方法来检查电子邮件?

这里的问题是?=对于电子邮件地址完全有效。来自维基百科上的RFC控制电子邮件地址

电子邮件地址的本地部分可以使用以下任何 ASCII 字符:
这些特殊字符:!#$%&'*+-/=?^_'{|}~ (ASCII: 33, 35–39, 42, 43, 45, 47, 61, 63, 94–96, 123–126)

如果您试图确保电子邮件地址确实存在,请注意该路径非常困难