PHP

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

Функция is_email()
На сайтах часто приходится проверять — корректно ли введена электронная почта.

Самый популярный вариант — проверять при помощи регулярных выражений.
<?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>';
}

?>

Результат
На экране мы увидим следующее:
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) отлично справляется с поставленной задачей.
Теги:
Проверка почты
Добавлено: 29 Мая 2018 19:20:21 Добавил: Андрей Ковальчук Нравится 0
Добавить
Комментарии:
Нету комментариев для вывода...