Justi 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 (12)

  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

  7. charlie dice:

    Hola:
    Felicitaciones por el curso PHP.
    Sin embargo, por mis limitaciones, estoy buscando ayuda para hacer un script php por una consulta mysql.

    Tengo una base de datos llamada bduno
    En ella hay una tabla llamada datosuno con los siguientes campos: id, nombre, apellido, sexo, edad, peso, altura
    Por definicion, en la tabla no habr谩 m谩s de 14 registros.

    Lo que busco es un c贸digo php para que muestre (echo o print) por ejemplo todos los registros en los cuales sexo=m y edad=20.

    Lo del principio, por mis escasos conocimientos necesito que es c贸digo sea escrito en su totalidad, con puntos y comas ya que yo no se hacerlo.

    Muchas gracias,
    Charlie

  8. Justi dice:

    @charlie hola charlie, te agradeceria que leas todo el taller, ahi esta explicado perfectamente lo que queres hacer.

  9. Carlos dice:

    Has ejemplos con bucles, con contadores,con busquedas complejas, si tengo un listado de 1000 registros de nombres en excel o word como hago para pasarlo al php mediante Codigo para no star tipeando cada registro. GRACIAS BYE!! cs_strike84_7@hotmail.com agregame plz!

  10. Edgar Millan dice:

    Solo me queda decirte que en verdad es un excelente curso pues tiene la explicaci贸n suficiente como saber de que se trata php.

    Gracias
    Edgar
    M茅xico D.F

  11. Celin P茅rez dice:

    El curso es excelente, muy expl铆cito, lamentablemente solo llegue hasta la clase 32, ya esa p谩gina carga con errores y el enlace para la clase siguiente esta deshabilitado(no funciona), y tampoco me permite guardar esa p谩gina, le agradecer铆a repara este enlace para poder seguir con las clases siguientes y me avisara a mi E-Mail, este venezolano de Caracas, su admirador, siente como cada d铆a mejora m谩s en el dominio de 1ero: la herramienta DreamWeaver con el Taller del mismo, y ahora 2do: El lenguaje PHP con este Taller…mi agradecimiento es por siempre….desde Caracas, Venezuela….

  12. Morton dice:

    Cel铆n, ya fue reparado el enlace, muchas gracias por informarlo.

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