Вы можете авторизоваться через ВКонтакте, Фейсбук и оставить комментарий


Проверка электронной почты (PHP)

Функция is_email()

На сайтах часто приходится проверять — корректно ли введена электронная почта.

Самый популярный вариант — проверять при помощи регулярных выражений.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
<?php

/**
 * Функция is_email проверяет корректно ли введена электронная почта $email
 *
 */
function is_email($email)
{
    
// список доменов верхнего уровня, в которых больше двух символов
    
$d 'biz|com|edu|gov|info|int|mil|name|net|org|aero|asia|cat|coop|jobs|mobi|museum|pro|tel|travel|arpa|eco|xxx';
    return 
preg_match(
        
'/^[a-z0-9][a-z0-9\-._]*[a-z0-9]@[a-z0-9][a-z0-9\-.]*[a-z0-9]\.('.$d.'|[a-z]{2})$/i',
        
$email
    
);
}

// заполним массив различными вариантами ввода электронной почты
$emails = array(
    
'test@example.com',
    
'test@example.ru',
    
'test@example.org.ru',
    
'.test@example.com',
    
'test.name@example.com',
    
'test.my-name@subdomain.example.com',
    
'test.text@example.comm'
);

// прогоним массив и проверим каждый элемент на корректность
foreach ($emails as $email)
{
    echo 
$email.': '.(is_email($email) ? 'true' '<b>false</b>').'<br>';
}

?>

Результат

На экране мы увидим следующее:

1
2
3
4
5
6
7
test@example.com: true<br>
test@example.ru: true<br>
test@example.org.ru: true<br>
.test@example.com: <b>false</b><br>
test.name@example.com: true<br>
test.my-name@subdomain.example.com: true<br>
test.text@example.comm: <b>false</b>

...или так
test@example.com: true
test@example.ru: true
test@example.org.ru: true
.test@example.com: false
test.name@example.com: true
test.my-name@subdomain.example.com: true
test.text@example.comm: false

Заключение

Функция is_email(string $email) отлично справляется с поставленной задачей.

Опубликовано: 27 января 2011  ·  Автор: Артём Фёдоров  ·  3147 просмотров

Категория

ГлавнаяПрограммированиеPHPРегулярные выраженияПроверка электронной почты (PHP)

Чтобы оставить комментарий нужно авторизоваться на сайте
или войти через ВКонтакте или Фейсбук

Войти через ФейсбукВойти через Твиттер

Комментарии

Можно и так. Регулярка будет короче.
Артём Фёдоров · 5 лет назад
Перерыл в сети много страниц, этот шаблон реально рабочий! Только я убрал перечисление доменов и заменил это тем, что добавил кол-во символов после последней точки до 4-х.
Евгений Романенко · 5 лет назад
Регулярные выражения, PHP, Программирование

© 2010-2017 expange.ru
При полном или частичном копировании статей сайта, ссылка на источник обязательна.

Хотите узнать больше информации, пишите на: artem@expange.ru

Полезное онлайн  ·  Новости  ·  Изображения  ·  Статьи по датам

О проекте  ·  Правила пользования  ·  Представительства

Благодарности и пожелания