Validar correo electrónico en PHP

Subodh Poudel 30 enero 2023
  1. Utilice la función filter_var() y el FILTER_VALIDATE_EMAIL para validar el correo electrónico en PHP
  2. Utilice las funciones FILTER_VALIDATE_EMAIL, FILTER_SANITIZE_EMAIL y filter_var() para validar el correo electrónico en PHP
  3. Utilice la función preg_match() para validar el correo electrónico de acuerdo con la expresión regular
Validar correo electrónico en PHP

Introduciremos un método para validar una dirección de correo electrónico en PHP usando la función filter_var() y la identificación del nombre del filtro FILTER_VALIDATE_EMAIL. La función filter_var() toma el correo electrónico como primer argumento y el nombre de filtro FILTER_VALIDATE_EMAIL para validar el correo electrónico con la sintaxis en RFC 822. Este método verifica el formato de correo electrónico válido en lugar del correo electrónico válido.

También demostraremos otro método para validar direcciones de correo electrónico en PHP usando los identificadores de nombre de filtro FILTER_SANITIZE_EMAIL y FILTER_VALIDATE_EMAIL junto con la función fiter_var(). Este método primero desinfecta la dirección de correo electrónico y luego valida la dirección de correo electrónico.

Introduciremos otro método para validar el correo electrónico en PHP usando la expresión regular. Este método utiliza la función preg_match() para comprobar si el correo electrónico es válido de acuerdo con la expresión regular proporcionada.

Utilice la función filter_var() y el FILTER_VALIDATE_EMAIL para validar el correo electrónico en PHP

Podemos usar la función filter_var() para filtrar una variable con un nombre de filtro particular. El nombre del filtro FILTER_VALIDATE_EMAIL especifica que el correo electrónico debe ser verificado. La función toma la dirección de correo electrónico como una cadena como primer parámetro y el ID de filtro especificado anteriormente como segundo parámetro. Por lo tanto, podemos verificar si el correo electrónico proporcionado es válido. La función devuelve los datos filtrados si la función tiene éxito o devuelve falso. El correo electrónico se dice válido, no en el sentido de que exista. La identificación del filtro valida el correo electrónico con la sintaxis en RFC 822. Podemos probar la validación del correo electrónico utilizando un correo electrónico válido y otro no válido.

Por ejemplo, cree una función validateEmail() que tome un parámetro $email. Utilice la función filter_var() en la variable $email y especifique el ID de filtro FILTER_VALIDATE_EMAIL como segundo parámetro. Aplicar la condición if-else en la función filter_var(). En el bloque if, muestre el mensaje que dice que el correo electrónico es válido, y en la condición más, muestre que el correo electrónico no es válido. Fuera de la función, llame a la función dos veces. En la primera llamada a la función, proporcione el argumento peter.piper@iana.org y first.last@example.123
en la segunda convocatoria.

Podemos suponer que se accede a la dirección de correo electrónico proporcionada en el ejemplo desde un formulario utilizando la variable $_POST. La función del ejemplo siguiente se invoca dos veces. La primera invocación pasa una dirección de correo electrónico válida y la segunda dirección pasa un correo electrónico no válido. La segunda dirección de correo electrónico no es válida porque contiene números en el dominio de nivel superior. El resultado es igualmente obvio.

Código de ejemplo:

#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');
?>

Producción :

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

Utilice las funciones FILTER_VALIDATE_EMAIL, FILTER_SANITIZE_EMAIL y filter_var() para validar el correo electrónico en PHP

Podemos usar el ID de nombre de filtro adicional FILTER_SANITIZE_EMAIL en el primer método para eliminar todos los caracteres ilegales de una dirección de correo electrónico. La identificación del nombre del filtro es el segundo argumento en la función filter_var(), donde la dirección de correo electrónico es el primer argumento. La función devuelve el correo electrónico desinfectado. Podemos usar nuevamente la función para verificar la validez de la dirección de correo electrónico después de la desinfección. Para esto, podemos seguir el primer método usando el ID de nombre de filtro FILTER_VALIDATE_EMAIL.

Por ejemplo, cree una variable $email y almacene una dirección de correo electrónico con caracteres ilegales. Guarde el correo electrónico ram(.mugu)@exa//mple.org como una cadena en la variable. Utilice la función filter_var() en la variable y utilice la identificación FILTER_SANITIZE_EMAIL como segundo parámetro. Almacene la función en la misma variable $email. Luego, aplique la instrucción if-else como en el primer método. Esta vez, use el correo electrónico FILTER_VALIDATE_EMAIL como el nombre del filtro en la función. Del mismo modo, muestre los mensajes.

En el ejemplo siguiente se toma una dirección de correo electrónico con un carácter ilegal, y la función filter_var() filtra esos caracteres y desinfecta el correo electrónico proporcionado. La dirección de correo electrónico proporcionada en el ejemplo contiene caracteres ilegales como () y //. La función primero elimina estos caracteres del correo electrónico y luego valida el correo electrónico.

Código de ejemplo:

#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>";
}
?>

Producción :

ram.mugu@example.org: A valid email

Utilice la función preg_match() para validar el correo electrónico de acuerdo con la expresión regular

Podemos usar la función preg_match() para validar la dirección de correo electrónico en PHP. Este método usa la expresión regular para la regla de validación del correo electrónico. Podemos crear una expresión regular nosotros mismos y definir las reglas para un correo electrónico válido. La función preg_match() toma dos parámetros donde el primero es la expresión regular y el segundo es el correo electrónico a verificar. Podemos usar el operador ternario para verificar la validez del correo electrónico junto con la función.

Por ejemplo, cree dos variables, $email_first y $email_secon, y almacene dos direcciones de correo electrónico en esas variables. Almacene un correo electrónico válido firstlast11@gmail.com primero y almacene uno no válido firstlast11@gmail.com en el segundo. Escriba una función validateEmail() que tome un parámetro. Nombra el parámetro $email. Dentro de la función, escriba una expresión regular en la variable $regex como en el código de ejemplo. Luego escriba un operador ternario donde la condición a verificar es la función preg_match(). Tome $regex como primer parámetro y $email como segundo parámetro. Imprima el mensaje que dice que el correo electrónico es válido cuando la condición es verdadera y el mensaje que dice que el correo electrónico no es válido cuando la condición es falsa. Haz eco de toda la expresión ternaria. Fuera de la función, llame a la función validateEmail() dos veces. Utilice la variable $email_first en la primera llamada a la función y utilice la variable $email_second en la segunda llamada a la función.

En el siguiente ejemplo, hemos escrito una expresión regular que crea una regla para validar el correo electrónico. Un correo electrónico válido contiene un nombre de destinatario, un símbolo @, un dominio y un dominio de nivel superior. La expresión regular creada anteriormente acepta el nombre del destinatario como valores alfanuméricos. El alfabeto consta de mayúsculas y minúsculas. También acepta un punto. El correo electrónico debe tener el símbolo @. El dominio contiene solo los alfabetos. Entonces, el correo electrónico debe tener un punto. El dominio de nivel superior solo debe constar de los alfabetos y debe tener una longitud de dos o tres. La expresión regex se crea según esta regla. El primer correo electrónico es válido ya que cumple con todas las reglas, pero el segundo correo electrónico no es válido. No es válido porque hay un número en el nombre de dominio y no hay un período antes del dominio de nivel superior.

Código de ejemplo:

# 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);
?>

Producción :

The email is valid 
The email is not valid
Subodh Poudel avatar Subodh Poudel avatar

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