php - 一般和特定(大学域)的最佳电子邮件验证功能?

标签 php email-validation

我知道电子邮件验证是其中之一,但并不是最有趣的事情。我正在创建一个网站,我想将我的受众限制在我大学里的人,我还想为我的用户提供一个首选的电子邮件地址。所以这是一个由两部分组成的问题。

  1. 是否有用于电子邮件验证的真正可靠的 php 函数?

  2. 我可以验证来自特定域的电子邮件吗?我不想只检查域是否存在,因为我知道 www.mycollege.edu已经存在。真的有办法验证用户是否拥有有效的@mycollege.edu 网址吗?

最佳答案

这是我用的:

   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;
    }

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

关于php - 一般和特定(大学域)的最佳电子邮件验证功能?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6232846/

相关文章:

php - 下一个按钮在代码 php 的按钮中不起作用

php - 如何从 MYSQL 数据库获取登录系统的 IP?

CentOS 6.5 上的 PHP MSSQL 5.5.8-1?

php - PHP 的 DOMXPath 中是否需要 registerNamespace?

email - 在 SAS SQL 中计算电子邮件地址中的连续辅音

javascript - boolean 状态值在第二次提交时更改为未定义

php - 将发布的 PHP 数组插入 MYSQL

javascript - Email Validation...提倡使用+,你写这个会有多尴尬?

javascript - 验证以分号分隔的多个电子邮件,并且所有电子邮件都必须与特定域匹配

python - 如何查明电子邮件地址是否存在?