Foros del Web » Programando para Internet » PHP »

expresiones regulares

Estas en el tema de expresiones regulares en el foro de PHP en Foros del Web. hola! toy jugando con las expresiones regulares. tengo lo siguiente es un ejemplo basico . Código PHP: <?php $data  =  file_get_contents ( "4.php" ); preg_match ...
  #1 (permalink)  
Antiguo 08/02/2008, 21:40
 
Fecha de Ingreso: marzo-2006
Mensajes: 401
Antigüedad: 18 años, 8 meses
Puntos: 1
expresiones regulares

hola!


toy jugando con las expresiones regulares. tengo lo siguiente es un ejemplo basico .

Código PHP:
<?php
$data 
file_get_contents("4.php");



preg_match("/<div id=\"precio\">(.*?)<\/div>/"$data$m);
echo 
$m[1];




?>
4.php
Cita:
<div id="precio"> <b>RD$8,500.00</b></div>
funciona super bien cuando esta asi el archivo 4.php , pero cuando el div esta de esta manera:
4.php : Modificacion
Cita:
<div id="precio">
<b>RD$8,500.00</b></div>
no funciona no se por que , alguien sabe?
__________________
Importzona.com - Portal Racing
Tunerspot.net - your spot on net
  #2 (permalink)  
Antiguo 09/02/2008, 03:25
venkman
Invitado
 
Mensajes: n/a
Puntos:
Re: expresiones regulares

Porque hay saltos de línea y el bloque (.*) no incluye esa posibilidad. Como puedes ver, el . [ http://es.php.net/manual/es/referenc...ern.syntax.php ] es "cualquier cosa menos el salto de línea".
  #3 (permalink)  
Antiguo 09/02/2008, 13:02
 
Fecha de Ingreso: marzo-2006
Mensajes: 401
Antigüedad: 18 años, 8 meses
Puntos: 1
Re: expresiones regulares

como lo soluciono?
__________________
Importzona.com - Portal Racing
Tunerspot.net - your spot on net
  #4 (permalink)  
Antiguo 09/02/2008, 17:28
Avatar de emiliodeg  
Fecha de Ingreso: septiembre-2005
Ubicación: Córdoba
Mensajes: 1.830
Antigüedad: 19 años, 2 meses
Puntos: 55
Re: expresiones regulares

proba con esto

preg_match('/<div id="precio">(.*?)<\/div>/', $data, $m);
__________________
Degiovanni Emilio
developtus.com
  #5 (permalink)  
Antiguo 11/02/2008, 02:23
venkman
Invitado
 
Mensajes: n/a
Puntos:
Re: expresiones regulares

Pon un modificador a la expresión regular, para que el . incluya también los saltos de línea. Ese modificador es s:

preg_match("/<div id=\"precio\">(.*?)<\/div>/s", $data, $m);

Lo puedes leer en la documentación.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 14:13.