У меня есть массив идентификаторов электронной почты. Я хочу проверить каждый идентификатор электронной почты для своего домена.
На самом деле, я должен анализировать этот массив всякий раз, когда найден идентификатор электронной почты без домена .edu, сообщение об ошибке должно быть выдано как ‘Пожалуйста, введите действительный ID .edu’ и дальнейшие электронные письма из массива не должны проверяться.
Как мне добиться этого эффективным и надежным способом?
Ниже приведен мой код массива, который содержит идентификаторы электронной почты. Массив может быть пустым, содержать один или несколько элементов. Он должен работать для всех этих сценариев с соответствующей проверкой и сообщениями об ошибках.
$aVals = $request_data;
$aVals['invite_emails'] = implode(', ', $aVals['invite_emails']);
$aVals['invite_emails']
содержит список адресов электронной почты, полученных в запросе.
Пожалуйста, дайте мне знать, если вам нужна дополнительная информация о моих требованиях, если она вам не ясна.
Заранее спасибо.
Вы можете сделать что-то вроде этого,
Обновлено:
// consider $aVals['invite_emails'] being your array of email ids
// $aVals['invite_emails'] = array("[email protected]", "[email protected]");
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
}
}
}
Поскольку идентификатор электронной почты всегда состоит из 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";
}
}
}