Está usted en Indice > Construcción > Lenguajes > PHP > Lecciones y Paso a Paso > Ejemplo practico expresiones regulares
Construcción
Maletín
Utilidades
Cursos
Promoción
Rentabilidad
Zona Novatos
Foros
Acceso a tu cuenta

Ejemplo practico expresiones regulares

Un ejemplo sobre el uso de las expresiones regulares en PHP.

Un ejemplo práctico

Hemos dicho que las expresiones regulares son uno de los instrumentos mas útiles en cualquier lenguaje de programación. ¿Para que podemos usarlas?. Uno de sus usos mas típicos es el de validar entradas de datos que los visitantes de una página puedan mandarnos a través de formularios html.

El ejemplo mas corriente es el de una dirección email. Imaginemos que queremos filtrar las direcciones introducidas por los visitantes, para evitar introducir en la base de datos la típica dirección basura ghghghghghghg. Todos sabemos la estructura de una dirección email, formada por la cadena nombreusuario, el signo @ y la cadena nombredominio. Tambien sabemos que nombredominio esta formado por dos subcadenas, 'nombredomino', un '.' y un sufijo 'com', 'net', 'es' o similar.

Por tanto la solución a nuestro problema es idear una expresión regular que identifique una dirección email valida típica, y confrontarla con la cadena (dirección email) pasada por el visitante.

Por ejemplo:

<?
        ^[^@ ]+@[^@ ]+.[^@ .]+$
?>

Vamos a diseccionar nuestra expresión regular:

<?
^       // queremos decir que el primer carácter que buscamos
        // debe estar al principio de la cadena a comparar.

[^@ ]   // ese primer signo no debe ser ni el signo @
         // ni un espacio

+       // y se repite una o mas veces

@       // luego buscamos el signo @

[^@ ]+  // Seguido de otro signo que no es un @ ni un
        // espacio y se repite una o mas veces

.       // Seguido de un .

[^@ .]  // Seguido de un carácter que no sea ni @,
        // ni espacio ni punto

+$      // Que se repite una o mas veces y el último esta
        // al final de la cadena
?>

Y para comprobarlo en la práctica, usamos una de las funciones de php relacionadas con las expresiones regulares:ereg().

Acudiendo al manual php, podemos averiguar que esta función tiene la siguiente sintaxis:

ereg (string pattern, string string)

Busca en string las coincidencias con la expresión regular pattern. La búsqueda diferencia entre mayúsculas y minúsculas.

Devuelve un valor verdadero si se encontró alguna coincidencia, o falso in no se encontraron coincidencias u ocurrió algún error. Podríamos usar esta funcion para un validador email con algo asi como:

<?

// establecemos una secuencia condicional: si la variable $op no existe y
// es igual a "ds", se muestra un formulario

if ($op != "ds") {
?>
<form>
<input type=hidden name="op" value="ds">
<strong>Tu email:</strong><br />
<input type=text name="email" value="" size="25" />
<input type=submit name="submit" value="Enviar" />
</form>
<?
}

// Si $op existe y es igual a "ds"m, se ejecuta la función ereg buscando
// nuestra cadena dentro del patrón $email que es la direccion enviada por
// el usuario desde el formulario anterior


else if ($op == "ds")
{

    if (ereg("^[^@ ]+@[^@ ]+.[^@ .]+$", $email ) )
        {
            print "<BR>Esta dirección es correcta: $email";
        }
    else {echo "$email no es una dirección valida";}
}

?>

No hace falta advertir que se trata de un ejemplo muy elemental, que dará por válida cualquier dirección email que tenga una mínima apariencia de normalidad (por ejemplo, daria por valida 'midireccionnn@noteimporta.commm')




Autor: irv.
http://www.ignside.net/

Usuarios que han visto este tema también han visto...

- Proteger páginas por HTTP en PHP
- Convertir textos en enlaces en PHP
- Bajar archivos en PHP
- Sistema de logeo simple en php
- Invitar a un amigo en PHP


Versión imprimible - Versión imprimible de este documento
Enviar e-mail - Enviar por e-mail este documento
Publicidad






Cursos de Community Manager

Información legal | Política de Privacidad | Contacte con nosotros

Otro proyecto de Factoría de Internet. Copyright© 2003-2011 Factoría de Internet S.L.. Todos los derechos reservados.


Página generada el 26-05-2012 a las 04:04:33