Validar e-mail em PHP
-
Use a função
filter_var()
eFILTER_VALIDATE_EMAIL
para validar o e-mail em PHP -
Use as funções
FILTER_VALIDATE_EMAIL
,FILTER_SANITIZE_EMAIL
efilter_var()
para validar o e-mail em PHP -
Use a função
preg_match()
para validar o e-mail de acordo com a expressão regular
Apresentaremos um método para validar um endereço de e-mail em PHP usando a função filter_var()
e o ID do nome do filtro FILTER_VALIDATE_EMAIL
. A função filter_var()
leva o email como o primeiro argumento e o nome do filtro FILTER_VALIDATE_EMAIL
para validar o email em relação à sintaxe em RFC 822. Este método verifica o formato de email válido em vez do email válido.
Também demonstraremos outro método para validar endereços de e-mail em PHP usando os ids de nome de filtro FILTER_SANITIZE_EMAIL
e FILTER_VALIDATE_EMAIL
junto com a função fiter_var()
. Este método primeiro limpa o endereço de e-mail e, em seguida, valida o endereço de e-mail.
Apresentaremos outro método para validar e-mail em PHP usando a expressão regular. Este método usa a função preg_match()
para verificar se o e-mail é válido de acordo com a expressão regular fornecida.
Use a função filter_var()
e FILTER_VALIDATE_EMAIL
para validar o e-mail em PHP
Podemos usar a função filter_var()
para filtrar uma variável com um nome de filtro particular. O nome do filtro FILTER_VALIDATE_EMAIL
especifica que o e-mail precisa ser verificado. A função usa o endereço de e-mail como uma string como o primeiro parâmetro e o id do filtro especificado acima como o segundo parâmetro. Assim, podemos verificar se o email fornecido é válido. A função retorna os dados filtrados se a função for bem-sucedida ou retornar falso. O e-mail é considerado válido, não no sentido em que o e-mail existe. A identificação do filtro valida o e-mail em relação à sintaxe em RFC 822. Podemos testar a validação de e-mail usando um e-mail válido e um inválido.
Por exemplo, crie uma função validateEmail()
que recebe um parâmetro $email
. Use a função filter_var()
na variável $email
e especifique o id do filtro FILTER_VALIDATE_EMAIL
como o segundo parâmetro. Aplique a condição if-else
na função filter_var()
. No bloco if
, exiba a mensagem dizendo que o e-mail é válido, e na condição else
, exiba que o e-mail é inválido. Fora da função, chame a função duas vezes. Na primeira chamada de função, forneça o argumento peter.piper@iana.org
e first.last@example.123
na segunda chamada.
Podemos assumir que o endereço de e-mail fornecido no exemplo é acessado a partir de um formulário usando a variável $_POST
. A função no exemplo abaixo é chamada duas vezes. A primeira chamada passa um endereço de e-mail válido e o segundo endereço passa um e-mail inválido. O segundo endereço de e-mail é inválido porque contém números no domínio de nível superior. O resultado é tão óbvio.
Código de exemplo:
#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');
?>
Resultado:
phppeter.piper@iana.org: A valid email
first.last@example.123:Not a valid email
Use as funções FILTER_VALIDATE_EMAIL
, FILTER_SANITIZE_EMAIL
e filter_var()
para validar o e-mail em PHP
Podemos usar o ID de nome de filtro adicional FILTER_SANITIZE_EMAIL
no primeiro método para remover todos os caracteres ilegais de um endereço de e-mail. O nome do filtro id é o segundo argumento na função filter_var()
, onde o endereço de e-mail é o primeiro argumento. A função retorna o e-mail limpo. Podemos usar a função novamente para verificar a validade do endereço de e-mail após a higienização. Para isso, podemos seguir o primeiro método usando o ID do nome do filtro FILTER_VALIDATE_EMAIL
.
Por exemplo, crie uma variável $email
e armazene um endereço de e-mail com caracteres ilegais. Armazene o e-mail ram(.mugu)@exa//mple.org
como uma string na variável. Use a função filter_var()
na variável e use o id FILTER_SANITIZE_EMAIL
como o segundo parâmetro. Armazene a função na mesma variável $email
. Em seguida, aplique a instrução if-else
como no primeiro método. Desta vez, use o e-mail FILTER_VALIDATE_EMAIL
como o nome do filtro na função. Da mesma forma, exiba as mensagens.
Um endereço de e-mail com um caractere ilegal é obtido no exemplo abaixo, e a função filter_var()
filtra esses caracteres e limpa o e-mail fornecido. O endereço de e-mail fornecido no exemplo contém caracteres ilegais, como ()
e //
. A função primeiro remove esses caracteres do e-mail e, em seguida, valida o e-mail.
Código de exemplo:
#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>";
}
?>
Resultado:
ram.mugu@example.org: A valid email
Use a função preg_match()
para validar o e-mail de acordo com a expressão regular
Podemos usar a função preg_match()
para validar o endereço de e-mail em PHP. Este método usa a expressão regular para a regra de validação do e-mail. Podemos criar uma expressão regular e definir as regras para um e-mail válido. A função preg_match()
leva dois parâmetros onde o primeiro é a expressão regular, e o segundo é o e-mail a ser verificado. Podemos usar o operador ternário para verificar a validade do e-mail junto com a função.
Por exemplo, crie duas variáveis, $email_first
e $email_secon
, e armazene dois endereços de e-mail nessas variáveis. Armazene um e-mail válido firstlast11@gmail.com
primeiro e armazene um inválido firstlast11@gmail.com
no segundo. Escreva uma função validateEmail()
que receba um parâmetro. Nomeie o parâmetro $email
. Dentro da função, escreva uma expressão regular na variável $regex
como no código de exemplo. Em seguida, escreva um operador ternário onde a condição a ser verificada é a função preg_match()
. Pegue o $regex
como o primeiro parâmetro e o $email
como o segundo parâmetro. Imprima a mensagem dizendo que o e-mail é válido quando a condição é verdadeira e a mensagem dizendo que o e-mail é inválido quando a condição é falsa. Ecoe toda a expressão ternária. Fora da função, chame a função validateEmail()
duas vezes. Use a variável $email_first
na primeira chamada de função e use a variável $email_second
na segunda chamada de função.
No exemplo abaixo, escrevemos uma expressão regular que cria uma regra para validar o e-mail. Um e-mail válido contém um nome de destinatário, símbolo @
, um domínio e um domínio de nível superior. A expressão regex criada acima aceita o nome do destinatário como valores alfanuméricos. O alfabeto consiste em maiúsculas e minúsculas. Ele também aceita um período. O e-mail deve ter o símbolo @
. O domínio contém apenas os alfabetos. O e-mail deve ter um ponto então. O domínio de nível superior deve consistir apenas em alfabetos e deve ter um comprimento de dois ou três. A expressão regex é criada com base nesta regra. O primeiro e-mail é válido porque cumpre todas as regras, mas o segundo e-mail é inválido. É inválido porque há um número no nome de domínio e não há ponto antes do domínio de nível superior.
Código de exemplo:
# 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);
?>
Resultado:
The email is valid
The email is not valid
Subodh is a proactive software engineer, specialized in fintech industry and a writer who loves to express his software development learnings and set of skills through blogs and articles.
LinkedIn