最佳的电子邮件验证功能一般和具体(大学域名)?

Ben*_*Ben 5 php email-validation

嘿伙计们,我知道电子邮件验证是其中一个不是最有趣的事情之一.我正在建立一个网站,我想限制我的观众只限于我大学的人,我也希望为我的用户提供首选的电子邮件地址.所以这是一个两部分问题.

  1. 是否有一个非常可靠的PHP功能用于电子邮件验证?

  2. 我可以验证来自特定域的电子邮件吗?我不想只检查域名是否存在,因为我知道www.mycollege.edu已经存在.真的无论如何都要验证用户是否拥有有效的@ mycollege.edu网址?谢谢!

Chr*_*ker 24

这是我使用的:

   function check_email_address($email) {
        // First, we check that there's one @ symbol, and that the lengths are right
        if (!preg_match("/^[^@]{1,64}@[^@]{1,255}$/", $email)) {
            // Email invalid because wrong number of characters in one section, or wrong number of @ symbols.
            return false;
        }
        // Split it into sections to make life easier
        $email_array = explode("@", $email);
        $local_array = explode(".", $email_array[0]);
        for ($i = 0; $i < sizeof($local_array); $i++) {
            if (!preg_match("/^(([A-Za-z0-9!#$%&'*+\/=?^_`{|}~-][A-Za-z0-9!#$%&'*+\/=?^_`{|}~\.-]{0,63})|(\"[^(\\|\")]{0,62}\"))$/", $local_array[$i])) {
                return false;
            }
        }
        if (!preg_match("/^\[?[0-9\.]+\]?$/", $email_array[1])) { // Check if domain is IP. If not, it should be valid domain name
            $domain_array = explode(".", $email_array[1]);
            if (sizeof($domain_array) < 2) {
                return false; // Not enough parts to domain
            }
            for ($i = 0; $i < sizeof($domain_array); $i++) {
                if (!preg_match("/^(([A-Za-z0-9][A-Za-z0-9-]{0,61}[A-Za-z0-9])|([A-Za-z0-9]+))$/", $domain_array[$i])) {
                    return false;
                }
            }
        }

        return true;
    }
Run Code Online (Sandbox Code Playgroud)

编辑用preg_match替换折旧的ereg以符合PHP 5.3

  • 哦,我明白......压力我现在就做这件事.我看到风吹的方向.:P (2认同)