【问题标题】:How to check email id's with specific domain from the array of email id's in PHP?如何从 PHP 中的电子邮件 ID 数组中检查具有特定域的电子邮件 ID?
【发布时间】:2016-02-26 12:59:05
【问题描述】:

我有一组电子邮件 ID。我想检查其域的每个电子邮件 ID。 实际上,只要找到没有“.edu”域的电子邮件 id,我就必须解析这个数组,错误消息应该被抛出为 '请输入有效的 .edu id' 以及来自不应该检查数组。

我应该如何以高效可靠的方式实现这一目标?

以下是我的包含电子邮件 ID 的数组代码。数组可以为空,包含单个元素或多个元素。它应该适用于所有这些场景,并带有适当的验证和错误消息。

$aVals = $request_data;
$aVals['invite_emails'] = implode(', ', $aVals['invite_emails']);

$aVals['invite_emails'] 包含请求中收到的电子邮件 ID 列表。

如果您不清楚我的要求,如果您需要任何进一步的信息,请告诉我。

提前致谢。

【问题讨论】:

标签: php arrays email email-validation domain-name


【解决方案1】:

你可以这样做,

更新:

// consider $aVals['invite_emails'] being your array of email ids
// $aVals['invite_emails'] = array("rajdeep@mit.edu", "subhadeep@gmail.com");

if(!empty($aVals['invite_emails'])){  //checks if the array is empty
    foreach($aVals['invite_emails'] as $email){  // loop through each email
        $domains = explode(".",explode("@",$email)[1]); // extract the top level domains from the email address
        if(!in_array("edu", $domains)){  // check if edu domain exists or not
            echo "Please enter valid .edu id";
            break;  // further emails from the array will not be checked
        }
    }
}

【讨论】:

    【解决方案2】:

    由于电子邮件 ID 总是由 3 个字符组成,您也可以这样做:

    foreach($aVals['invite_emails'] as $email){
    if (filter_var($email, FILTER_VALIDATE_EMAIL)) {
        // valid email
               if(substr($email, -3) != "edu") {
                    echo "Please enter valid .edu id";
                }
        }
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-05-24
      • 1970-01-01
      • 2016-11-06
      • 1970-01-01
      • 2015-10-25
      • 1970-01-01
      • 2017-01-28
      相关资源
      最近更新 更多