Justi Lunes, 1 de Septiembre de 2008 a las 13.00
   Imprimir artículo
elWebmaster.com

Taller de PHP: Expresiones Regulares (2)

Hola, hoy terminaremos con la clase de expresiones regulares. Para ello vamos a ver las funciones de php más utilizadas a la hora de realizar tareas con las mismas.

Entre ellas veremos preg_match (que busca una expresión en un string), preg_match_all (que en lugar de terminar en la primer expresión que encuentra, continua volcando en un array todas las coincidencias) y preg_replace (que busca una expresión regular y reemplaza el contenido de esa expresión por otro predefinido). ¡Comencemos!

preg_match

Busca una expresión en un string. La sintaxis es:

preg_match ( $patron, $string, $match );

$patron es el patrón como vimos la clase pasada, hay que ponerlo entre barras (/), igual no se preocupen, ya veremos un ejemplo.

$string es el lugar donde queremos buscar nuestro patrón.

$match es un parámetro opcional, no es necesario que este, si lo incluimos, ahí tendremos un vector con los resultados coincidentes con nuestro patrón, si no lo incluimos preg_match nos va a devolver true o false dependiendo si lo encontró o no.

Esta funcion (preg_match()) apenas encuentre una coincidencia va a dejar de correr.

<?

$string = "abcdef";
$patron = ‘/def/’;

if ( preg_match ( $patron, $string ) ) {
echo “coincide”;
} else {
echo “no coincide”;
}

?>

Otro ejemplo:

<?

$string = "abcdef";
$patron = ‘/def/’;

preg_match ( $patron, $string, $matches);

echo $matches[0];

?>

En este caso el echo $matches[0] nos va a imprimir def ya que el patrón estaba definido en el resultado, pero si cambiáramos el patrón por algo genérico

<?

$patron = "/^(.+)@/";
$string = “info@elwebmaster.com”;
preg_match( $patron, $string, $matches );

?>

Ahora en $matches vamos a tener un vector con $matches[0] = “info@” y en $matches[1] = “info”, esto se debe a que primero pone el resultado general, y segundo lo que esta dentro de los paréntesis (), si hubiésemos puestos varios paréntesis, tendríamos también un $matches[2], $matches[3], etc etc.

Siempre que quieran ver el contenido de un vector, con sus índices para saber donde esta el contenido de cada cosa, pueden hacer

<?
var_dump( $matches );
?>

Y eso les va a imprimir en pantalla algo asi:

array(2) { [0] => string(5) “info@” [1] => string(4) “info” }

De esta forma pueden ir viendo todo el tiempo cual es el contenido de sus vectores.

preg_match_all

Esta función es similar a preg_match, pero en lugar de terminar en la primer expresión que encuentra, continua volcando en un array todas las coincidencias.

preg_match_all ( $patron, $string, $matches)

En este caso, el resultado del var_dump para $matches va a ser:
array(2) {
[0]=>
array(1) {
[0]=>
string(5) “info@”
}
[1]=>
array(1) {
[0]=>
string(4) “info”
}
}

preg_replace

Busca una expresión regular y reemplaza el contenido de esa expresión por otro predefinido.

preg_replace( $patron, $reemplazo, $sujeto )

En $patron vamos a poner el o los patrones a buscar, en $reemplazo, lo que queremos poner en el lugar del patrón y $sujeto va a ser el string original en el que queremos buscar el contenido para ser reemplazado.

Por ejemplo:

<?

$sujeto = "El taller de php de Justi es el mejor";
$patron = array( “/php/”, “/Justi/ );
$reemplazo = array( “dreamweaver”, “Thor” );

$nuevoTexto = preg_replace( $patron, $reemplazo, $sujeto );

echo $nuevoTexto;

?>

Ahora vamos a ver en pantalla “El taller de dreamweaver de Thor es el mejor”

Eso es todo por hoy, espero que hayan entendido todo el taller hasta este punto, ya que la clase que viene empezaremos con ¡Practica! Como crear nuestro propio blog.

<< CLASE ANTERIOR

CLASE SIGUIENTE >>

Enviar a Del.icio.us Enviar a Meneame Enviar a Digg Enviar a Fresqui Enviar a Enchilame

Comentarios (6)

  1. Diego dice:

    Ola Sabes me a gustado mucho el curso de hecho lo he leido casi todo solo me faltan las ultimas 3 clases ;) pero sabes q necesito, saber si me puedes ayudar lo que pasa es que me consegui un formulario en php que viene con un autoresponder incluido en el código php, pero lo que pasa es que quisiera agregarle mas opciones al formulario con cosas que aprendi en el curso y no se como hacerlo me pierdo en el codigo y tampoco se hacer el autoresponder de nuevo :( , mira lo ideal seria si me pudieras agregar al msn y asi t paso el codigo haber si me puedes ayudar por favor que es mas o menos urgente para una pagina q toy haciendo:) aca esta mi msn: diego1258@hotmail.com
    gracias ;)

  2. Fernando dice:

    ¿Cómo hago para que cuando un usuario pulse un boton no pueda pulsar otro mientrs no termine el proceso que solicitó o lo canele? y si desea cancelarlo ¿como hago para canelar por ejemplo una consulta de Select nombre, edad form clientes where edad > 20, en proceso…

  3. hugo dice:

    gracias por el apoyo, me sera de gran utilidad

  4. Anselmo Benitez dice:

    Gracias por el curso. esta super completo.
    Quisiera saber si es posible disponer de todo el curso en un soo archivo.

    Gracias

    Anselmo Benitez
    Colombia

  5. Juan Manuel dice:

    ¡Hola, Anselmo! Los talleres de elWebmaster se publican únicamente dentro del sitio. Pero eres libre de guardar las páginas, imprimirlas para leerlas mejor, etc.
    ¡Saludos!

  6. Sergio Vega dice:

    Excelente material, estoy de cabeza para absorver lo más posible e ire incorporándolo a las aplicaciones que necesito implementar en mi sitio.
    Sinceramente, muchas gracias,

    Sergio Vega
    Chile

Deja tu opinión

© 2007 - 2008 elWebmaster.com | Powered by Wordpress | Diseño CSS y XHTML válido. | Algunos íconos basados en FamFamFam Mini
Iniciar Sesión