Проверить электронную почту в PHP

  1. Используйте функцию filter_var() и FILTER_VALIDATE_EMAIL для проверки электронной почты в PHP
  2. Используйте функции FILTER_VALIDATE_EMAIL, FILTER_SANITIZE_EMAIL и filter_var() для проверки электронной почты в PHP
  3. Используйте функцию preg_match() для проверки электронной почты в соответствии с регулярным выражением

Мы представим метод проверки адреса электронной почты в PHP с помощью функции filter_var() и идентификатора имени фильтра FILTER_VALIDATE_EMAIL. Функция filter_var() принимает адрес электронной почты в качестве первого аргумента и имя фильтра FILTER_VALIDATE_EMAIL для проверки электронной почты на соответствие синтаксису в RFC 822. Этот метод проверяет действительный формат электронной почты, а не действительный адрес электронной почты.

Мы также продемонстрируем другой метод проверки адресов электронной почты в PHP с использованием идентификаторов имен фильтров FILTER_SANITIZE_EMAIL и FILTER_VALIDATE_EMAIL вместе с функцией fiter_var(). Этот метод сначала очищает адрес электронной почты, а затем проверяет адрес электронной почты.

Мы представим еще один метод проверки электронной почты в PHP с использованием регулярного выражения. Этот метод использует функцию preg_match(), чтобы проверить, является ли электронное письмо действительным в соответствии с предоставленным регулярным выражением.

Используйте функцию filter_var() и FILTER_VALIDATE_EMAIL для проверки электронной почты в PHP

Мы можем использовать функцию filter_var() для фильтрации переменной с определенным именем фильтра. Имя фильтра FILTER_VALIDATE_EMAIL указывает, что письмо необходимо проверить. Функция принимает адрес электронной почты в виде строки в качестве первого параметра и указанный выше идентификатор фильтра в качестве второго параметра. Таким образом, мы можем проверить действительность предоставленного адреса электронной почты. Функция возвращает отфильтрованные данные, если функция завершается успешно или возвращает false. Электронная почта считается действительной, но не в том смысле, что она существует. Идентификатор фильтра проверяет электронную почту на соответствие синтаксису в RFC 822. Мы можем протестировать проверку электронной почты, используя действительный и недопустимый адрес электронной почты.

Например, создайте функцию validateEmail(), которая принимает параметр $email. Используйте функцию filter_var() для переменной $email и укажите идентификатор фильтра FILTER_VALIDATE_EMAIL в качестве второго параметра. Примените условие if-else к функции filter_var(). В блоке if отобразить сообщение о том, что электронная почта действительна, а в условии else отобразить, что электронная почта недопустима. Вне функции вызовите функцию два раза. В первом вызове функции укажите аргумент peter.piper@iana.org и first.last@example.123 во втором звонке.

Мы можем предположить, что адрес электронной почты, указанный в примере, доступен из формы с помощью переменной $_POST. Функция в приведенном ниже примере вызывается два раза. Первый вызов передает действительный адрес электронной почты, а второй адрес передает недопустимый адрес электронной почты. Второй адрес электронной почты недействителен, так как он содержит числа в домене верхнего уровня. Результат такой же очевидный.

Пример кода:

#php 7.x
<?php
function validateEmail($email) {
    if(filter_var($email, FILTER_VALIDATE_EMAIL)) {
        echo "{$email}: A valid email"."<br>";
    }
    else {
        echo "{$email}: Not a valid email"."<br>";
    }
}
validateEmail('peter.piper@iana.org');
validateEmail('first.last@example.123');
?>

Выход:

phppeter.piper@iana.org: A valid email 
first.last@example.123:Not a valid email

Используйте функции FILTER_VALIDATE_EMAIL, FILTER_SANITIZE_EMAIL и filter_var() для проверки электронной почты в PHP

Мы можем использовать дополнительный идентификатор имени фильтра FILTER_SANITIZE_EMAIL в первом методе, чтобы удалить все недопустимые символы из адреса электронной почты. Идентификатор имени фильтра является вторым аргументом в функции filter_var(), где адрес электронной почты является первым аргументом. Функция возвращает очищенное электронное письмо. Мы снова можем использовать эту функцию для проверки действительности адреса электронной почты после очистки. Для этого мы можем следовать первому методу, используя идентификатор имени фильтра FILTER_VALIDATE_EMAIL.

Например, создайте переменную $email и сохраните в ней адрес электронной почты с недопустимыми символами. Сохраните электронное письмо ram(.mugu)@exa//mple.org как строку в переменной. Используйте функцию filter_var() для переменной и используйте идентификатор FILTER_SANITIZE_EMAIL в качестве второго параметра. Сохраните функцию в той же переменной $email. Затем примените оператор if-else, как в первом методе. На этот раз используйте электронную почту FILTER_VALIDATE_EMAIL в качестве имени фильтра в функции. Аналогичным образом отобразите сообщения.

В приведенном ниже примере используется адрес электронной почты с недопустимым символом, а функция filter_var() фильтрует эти символы и очищает предоставленное электронное письмо. Адрес электронной почты, указанный в примере, содержит недопустимые символы, такие как () и //. Функция сначала удаляет эти символы из электронного письма, а затем проверяет его.

Пример кода:

#php 7.x
<?php
$email = "ram(.mugu)@exa//mple.org";
$email = filter_var($email, FILTER_SANITIZE_EMAIL);
if(filter_var($email, FILTER_VALIDATE_EMAIL)) {
    echo "{$email}: A valid email"."<br>";
}
else{
    echo "{$email}:Not a valid email"."<br>";
}
?>

Выход:

ram.mugu@example.org: A valid email

Используйте функцию preg_match() для проверки электронной почты в соответствии с регулярным выражением

Мы можем использовать функцию preg_match() для проверки адреса электронной почты в PHP. Этот метод использует регулярное выражение для правила проверки электронной почты. Мы можем сами создать регулярное выражение и определить правила для действительного электронного письма. Функция preg_match() принимает два параметра, первый из которых - регулярное выражение, а второй - проверяемое письмо. Мы можем использовать тернарный оператор для проверки действительности электронного письма вместе с функцией.

Например, создайте две переменные, $email_first и $email_secon, и сохраните в этих переменных два адреса электронной почты. Сначала сохраните действующий адрес электронной почты firstlast11@gmail.com, а во втором - недопустимый адрес firstlast11@gmail.com. Напишите функцию validateEmail(), которая принимает один параметр. Назовите параметр $email. Внутри функции напишите регулярное выражение в переменной $regex, как в примере кода. Затем напишите тернарный оператор, в котором проверяемым условием является функция preg_match(). Возьмите $regex в качестве первого параметра и $email в качестве второго параметра. Распечатайте сообщение о том, что электронная почта действительна, если условие истинно, и сообщение о том, что электронная почта недействительна, если условие ложно. Эхо всего троичного выражения. Вне функции вызовите функцию validateEmail() два раза. Используйте переменную $email_first в первом вызове функции и используйте переменную $email_second во втором вызове функции.

В приведенном ниже примере мы написали регулярное выражение, которое создает правило для проверки электронной почты. Действительный адрес электронной почты содержит имя получателя, символ @, домен и домен верхнего уровня. Созданное выше выражение регулярного выражения принимает имя получателя в виде буквенно-цифровых значений. Алфавит состоит как из прописных, так и из строчных букв. Он также принимает точку. В письме должен быть символ @. Домен содержит только алфавиты. Тогда в электронном письме должна быть точка. Домен верхнего уровня должен состоять только из алфавитов и иметь длину два или три. Выражение регулярного выражения создается на основе этого правила. Первый адрес электронной почты действителен, поскольку удовлетворяет всем правилам, а второй - недействителен. Он недействителен, потому что в имени домена есть число, а перед доменом верхнего уровня нет точки.

Пример кода:

# php 7.x
<?php
$email_first = 'firstlast11@gmail.com';
$email_second ='firstlast@11gmail,com';
function validateEmail($email) {
    $regex = "/^([a-zA-Z0-9\.]+@+[a-zA-Z]+(\.)+[a-zA-Z]{2,3})$/";
    echo preg_match($regex, $email) ? "The email is valid"."<br>" :"The email is       not valid";
}
validateEmail($email_first);
validateEmail($email_second);
?>

Выход:

The email is valid 
The email is not valid