Array ( [0] => myemail@domain.com [1] => mysecondemail@domain.com [2] => invalidEmail.com )
Обратите внимание, что значение третьего массива является недопустимым форматом электронной почты. Как удалить его с помощью / создания функции? Мне нужно иметь действительное письмо для того, чтобы implode("," the valid email)
перед отправкой электронной почты с помощью функции mail()
.
<?php $len=count($array); for ($i=0;$i<$len;$i++) if (preg_match('^[a-z0-9!#$%&*+/=?^_`{|}~-]+(?:.[a-z0-9!#$%&*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?.)+(?:[az]{2,4}|museum|travel)$/i',$array[$i])) echo $array[$i]; ?>
$valid = array_filter($emails, create_function('$s', 'return filter_var($s, FILTER_VALIDATE_EMAIL);'));
Или для PHP 5.3+:
$valid = array_filter($emails, function ($s) { return filter_var($s, FILTER_VALIDATE_EMAIL); });
Основное решение прост и не требует регулярного выражения
$isvalid = filter_var('myname@anydomain.com', FILTER_VALIDATE_EMAIL));
Но…
Чтобы узнать больше о действительных адресах электронной почты, следуйте приведенным ниже ссылкам.
Рекомендации:
Вот некоторые примеры:
Эти addreses не являются компиляторами стандарта RFC 5322 , но они все еще действительны.
Даже если вы подтвердите правильность некоторых адресов, ничто не может гарантировать, что ваш почтовый сервер их примет.