| Subcribe via RSS

Función en PHP para comprobar si un email es válido – Explicación

Febrero 1st, 2008 Posted in php

Algunos me habéis pedido que os explique cómo funciona el sencillo script que publiqué el otro día:

 if (ereg("([A-Za-z0-9_.-]+@[A-Za-z0-9_.-]+\.[A-Za-z0-9_-]+)", $email, $resultado))
{
    echo $resultado[1];
}

Pues vamos a analizarlo un poco.

La función ereg analiza la cadena $email, buscando si hay texto que se ajuste al patrón:

"[A-Za-z0-9_.-]+@[A-Za-z0-9_.-]+\.[A-Za-z0-9_-]+"

y almacene el resultado en el array $resultado.

El patrón parece algo críptico pero es bastante sencillo:

[A-Za-z0-9_.-] : sirve para indicar que buscamos un texto que contenga las letras de la ‘A’ a la ‘Z’, de la ‘a’ a la ‘z’, dígitos entre 0 y 9 y los símbolos ‘_’, ‘.’ y ‘-’.

El símbolo + a continuación indica que pueden ser uno o más caracteres.

Un email suele estar compuesto de las siguientes partes:

usuario@subdomino1.subdominio2.dominio.extensión

(no son los nombres correctos pero los pongo así para entendernos).

con el patrón que hemos usado quedaría algo así:

usuario: [A-Za-z0-9_.-]+
@: @
[A-Za-z0-9_\.-]+: subdomino1.subdominio2.dominio
.extensión: \.[A-Za-z0-9_-]+

Nótese que la extensión no admite ningún ‘.’.

Actualización: He corregido un pequeño un error en el patrón que hacía que aceptase emails con una barra invertida, como por ejemplo:

pa\co@email.com


Entradas relacionadas

  1. Función en PHP para comprobar si un email es válido
  2. Script PHP para extraer emails de uno o varios ficheros
  3. QT+MySQL (2ª parte): Comprobar si está disponible el driver MySQL para QT
  4. Eliminar el www de la URL con .htaccess
  5. Función PHP que añade un carácter al final si no existe
Valoración:
1 Estrella2 Estrellas3 Estrellas4 Estrellas5 Estrellas (Sin calificar)
Loading ... Loading ...




2 Responses to “Función en PHP para comprobar si un email es válido – Explicación”

  1. Zarpele Says:

    Me ah servido mucho esta explicacion gracias, saludos desde argentina….


  2. saimeloner Says:

    Me gustaria saber si sabes como hacer para que el formulario envie un correo al usuario y le pida que autentifique que el pidio el registro en dicho lugar y que luego de verificado (usualmente mediante un link) el registro, entonces le envie un mail al usuario con los datos ingresado y que su registro fue un exito.

    Quiero hacerlo en flash, pero si sabes la funcion en php luego puedo averiguar como adaptarlo para que funcione con flash.

    Muchas gracias.


Leave a Reply