Блог \ Собственные функции PHP \ Проверка правильности Email

Функция для проверки корректности Email адреса

Здравствуйте, сегодня речь пойдет о написании простенькой функции, которая будет проверять email адрес на корректность.

Для чего нужна такая функция

Например, надо проверить форму обратной связи в которой есть поле EMAIL и чтобы человек ввел именно емайл адрес, а не просто текст, мы сделаем проверку.

1

 

Приступим...

Для начала давайте разберемся какие бывают Email адреса, а именно из каких частей они состоят.

Части email адреса

Я условно поделил email на 4 части:

  1. Слово состоящее из букв латинского алфавита, а также оно может включать в себя (.) -точку, (-) минус и числа от 0-9
  2. Отличительный символ @
  3. Слово состоящее из букв латинского алфавита, а также оно может включать в себя (.) -точку, (-) минус и числа от 0-9
  4. Доменную зону, которая может содержать от 2 до 4 символов латинского алфавита. (список доменных зон), но она может быть двойной, например: .com.ua

Приемры:

  • info-support@mail.ru
  • krutoy72_28@site.com.ua
  • kurochka@grill.ru
  • sub.support@site.info

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

Регулярное выражение для определения Email адреса:

/[0-9a-z_\.\-]+@[0-9a-z_\.\-]+\.[a-z]{2,3}/i

Буква i в конце регулярки, говорит о том чтобы поиск был регистронезависимым, т.е. буква А не будет отличаться от а

Теперь функция (пример 1):

$email = 'Здесь должен быть email'

function emailValidation($email) //создаем функцию
{
	if($email) // Если переменная email не пуста
	{
		if(preg_match("/[0-9a-z_\.\-]+@[0-9a-z_\.\-]+\.[a-z]{2,4}/i", $email)) // если есть совпадение выводим сообщение
		{
			$message = "Это действительно Email";
		}
		else // если совпадений нет, выводим сообщение об ошибке
		{
			$message = "Некорректный Email адрес";
		}
	}		
	else // Если переменная email пуста
	{
		$message = 'Email не указан!';
	}

	return $message; 
}

$message = emailValidation($email); // помещаем в переменную  результат работы функции
echo emailValidation($email); // выводим на экран результат работы функции

Из примера 1, видим, что функция возвращает сообщение, которое помещаем в переменную $message или выводим на экран. А теперь давайте немного изменим её, чтобы можно было данную функцию подставить в условие if().

Пример 2:

$email = 'Здесь должен быть email'

function emailValidation($email) //создаем функцию
{
	if($email) // Если переменная email не пуста
	{
		if(preg_match("/[0-9a-z_\.\-]+@[0-9a-z_\.\-]+\.[a-z]{2,4}/i", $email)) // если есть совпадение выводим сообщение
		{
			return true;
		}
		else // если совпадений нет, выводим сообщение об ошибке
		{
			return false;
		}
	}		
	else // Если переменная email пуста
	{
		return false;
	}
}

	if(emailValidation($email))  // Если в переменной $email действительно электронный адрес, 
	{ 					// то функция emailValidation вернет истину
		echo 'Это email';	// и соответственно условие if сработает
 	}
	else 					// если там не email
	{					// тогда сработает условие else	
		echo 'Это не email';
	} 

Всем приятного пользования!

Метки: проверка email, коректный емайл, функция проверки электронного адреса,

Колян

Отличная функция, взял на заметку

Васян

Наверное круто. Но...
filter_var('bob@example.com'FILTER_VALIDATE_EMAIL)
мануалы круче. 

John

Васян прав, регулярки тормознутые манул курить надо прежде чем липить регулярку

Андрей

Я уже "раскурил", теперь тоже пользуюсь фильтрами!! Будет время, пост перепишу.....

Кирпич

Да в натуре!

gnklerer

while(true){alert('111')}

Ваши комментарии!

Имя:*


Email:*


Email:*

Не будет показан

Текст:*



Немного о нас

Да, действительно теперь я не один. В моей команде работают несколько программистов, дизайнер и отличный SMM специалист.

Так что теперь мы оказываем абсолютно весь спектр услуг, связанный с организацией бизнеса в интернете. Начиная от создания сайта и заканчивая продвижением его в интернете.

*/ ?>

Пишите!