Foros del Web » Programando para Internet » PHP »

Leer contenido de una web

Estas en el tema de Leer contenido de una web en el foro de PHP en Foros del Web. Estoy intentando extraer el contenido que se encuentra en una etiqueta div para ello utilizo este código: Código: $pattern = "<div id=\"resumen\">.*</div>"; if (eregi($pattern,$contenido,$quote)) { ...
  #1 (permalink)  
Antiguo 22/03/2007, 13:53
yoe
 
Fecha de Ingreso: marzo-2003
Mensajes: 74
Antigüedad: 21 años, 1 mes
Puntos: 0
Leer contenido de una web

Estoy intentando extraer el contenido que se encuentra en una etiqueta div

para ello utilizo este código:

Código:
$pattern = "<div id=\"resumen\">.*</div>";
if (eregi($pattern,$contenido,$quote)) {
	$resumen = $quote[1];
}
echo $resumen;
El problema que creo que está ocurriendo es que como hay más de una etiqueta de cierre en cualquier documento html, busca todas las ocurrencias de </div> y muestra todo el texto que haya contenido (hasta que encuentra la última etiqueta de cierre).

Necesito que se pare cuando encuentre la primera etiqueta. ¿Sería esto posible con expresiones regulares?

Saludos y gracias de antemano
  #2 (permalink)  
Antiguo 22/03/2007, 15:09
 
Fecha de Ingreso: julio-2005
Ubicación: Buenos Aires, Argentina
Mensajes: 1.304
Antigüedad: 18 años, 9 meses
Puntos: 6
Re: Leer contenido de una web

¿Que tal asi?

Código PHP:
$html '<html><head></head><body><div id="resumen">Este es el contenido de Resumen</div> <div id="otracosa">este es el contenido de otracosa</div></body></html>';
$pattern '/<div id="resumen">(.*?)<\/div>/';
preg_match($pattern$html$coincidencias);
print_r($coincidencias);

/*
* El primer resultado incluye las etiquetas <div>...
* el segundo solo el contenido de las mismas
*/ 
o asi si son varias(que lo dudo)

Código PHP:
$html '<html><head></head><body><div id="otracosa">este es el contenido<div id="resumen">Este es el contenido de Resumen</div>de otracosa</div></body><div id="resumen">Este es el contenido2 de Resumen</div></html>';
$pattern '/<div id="resumen">(.*?)<\/div>/';
preg_match_all($pattern$html$coincidencias);
print_r($coincidencias);

/*
* El primer resultado incluye las etiquetas <div>...
* el segundo solo el contenido de las mismas
*/ 

Aclaro que soy novato con expresiones regulares y de seguro debe haber una mejor alternativa

Saludos.
__________________
Federico.

Mi página: www.jourmoly.com.ar

Última edición por Fridureiks; 22/03/2007 a las 15:17
  #3 (permalink)  
Antiguo 23/03/2007, 09:28
yoe
 
Fecha de Ingreso: marzo-2003
Mensajes: 74
Antigüedad: 21 años, 1 mes
Puntos: 0
Re: Leer contenido de una web

No lo entiendo, cojo tu ejemplo, lo ejecuto en local y funciona correctamente. Lo adapto a lo que necesito, y me devuelve el Array vacío.

Código PHP:
if (!$html file_get_contents($url)) {
    echo 
'No se puede conectar a la página';
    exit;
};

$pattern '/<div id="resumFic">(.*?)<\/div>/';
preg_match($pattern$html$coincidencias);
print_r($coincidencias); 
En fin, seguiré haciendo pruebas a ver si doy con la solución.

Muchas gracias por tu ayuda,
  #4 (permalink)  
Antiguo 23/03/2007, 12:57
 
Fecha de Ingreso: julio-2005
Ubicación: Buenos Aires, Argentina
Mensajes: 1.304
Antigüedad: 18 años, 9 meses
Puntos: 6
Re: Leer contenido de una web

Por las dudas, echo $html; y revisa que en verdad exista el div que buscas. Nunca esta de mas
__________________
Federico.

Mi página: www.jourmoly.com.ar
  #5 (permalink)  
Antiguo 23/03/2007, 14:05
Avatar de Nefertiter  
Fecha de Ingreso: enero-2003
Ubicación: Rosario
Mensajes: 1.316
Antigüedad: 21 años, 3 meses
Puntos: 9
Re: Leer contenido de una web

simple acotacion.... la idea de usar ID es q sea un identificador unico es decir... no deberia repetirse mas de un elemento con mismod ID, para tales fines existen las Clases...
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 15:42.