Управление входными данными в php

#php #validation #email

#php #проверка #Адрес электронной почты

Вопрос:

Я начинаю работу с PHP, и мне дали задание, в котором я должен в основном отправлять электронные письма в коде. Часть получения различных частей электронных писем уже выполнена, но теперь я хочу быть уверенным, что указанный адрес электронной почты на самом деле является адресом электронной почты.

Вопрос: Как я могу проверить данные внутри строки в PHP?

Заранее спасибо!

Комментарии:

1. Проверка адресов электронной почты — это небольшая проблема. x@com на самом деле это может быть адрес электронной почты. (Это не так, по крайней мере, не глобально, потому com что не имеет записи MX. Но если вы не проверяете домены, вы действительно не знаете.)

Ответ №1:

Пожалуйста, не используйте регулярные выражения, используйте фильтры проверки, для чего они созданы.

Ответ №2:

Используйте Preg Match

 $regexp = "/^[_a-z0-9-A-Z] (.[_a-z0-9-A-Z] )*@[a-z0-9-] (.[a-z0-9-] )*(.[a-z]{2,3})$/";
if(!preg_match($regexp, $email)){
   $flag = false;
}else{
   $flag = true;
}
  

Комментарии:

1. Например, это не соответствует test.test@test.test.test.berlin .

2. ДА.. тогда каким будет действительное и точное регулярное выражение для электронной почты?

3. @Ronak: Он слишком большой, чтобы прилично вдаваться в ответ, предполагая, что вы также хотите это объяснить. 😛 Причина № 4, почему использование регулярного выражения для этого — не такая уж отличная идея.

4. Для справки: davidcel.is/blog/2012/09/06 /… (код на Ruby, но идея универсальна. :P)