Programación Web y Scripting > PHP
leer html desde php
(1/1)
jodijo5:
Hola amigos, tengo un problema, necesito hacer un programa que obtenga el contenido html de una pagina y luego extraiga solo el contenido de una etiqueta, necesitaria hacerlo full php sin javascript ni esas cosas proque lo voy a poner como un cronjob, hasta ahpora hice lo siguente:
--- Código: PHP --- <?php$la_pagina='http://localhost/prueba1/uno.html';$opts = array('http' =>array( 'method' => 'GET', 'header' => 'Content-type: application/x-www-form-urlencoded', //'content' => $postdata)); $context = stream_context_create($opts); $res= file_get_contents($la_pagina, false, $context);//el contenido HTML de la pagina se guarda en la variable $res, //y desde ahi tengo que extraer el contenido de la etiqueta <div id="cuerpo">?> mi problema está en que no se como extraer la info de esa etiqueta :-( porfavor ayudenme :-)
Gracias de antemano por su colaboracion
DriverOp:
Esto debería funcionar:
--- Código: PHP ---<?php$texto = "<div id="cuerpo">Esto es el texto</div>"; $patron = "/<div id="cuerpo">(.*?)</div>/is";$devuelve = preg_match($patron,$texto,$coincidencias);echo "<br>Devuelve<pre>";var_dump($devuelve);var_dump($coincidencias);echo "</pre>";?>
jodijo5:
creme mi amigo que ya habia pensado en eso pero el problema ahi es que pueden haber otras etiquetas dentro, y no capturaria todo el texto correspondiente, eso lo pude hacer con javascript pero el hecho es que solo debe ser php, eh ahi mi problema, muchas gracias de todas formas :) :good:
jodijo5:
Hola amigos, me parece que ya lo resolví, me hacen falta algunas mejoras, como validaciones, la codificacion y esas cosas, pero lo mas importante ya está :D, aqui os dejo el código:
--- Código: PHP --- <?php$direccion=$_GET["opc"];$identificador='history';$tipoid='class';$etiqueta='div';$opts = array('http' =>array( 'method' => 'GET', 'header' => 'Content-type: application/x-www-form-urlencoded',)); $context = stream_context_create($opts); $res= file_get_contents($direccion, false, $context);$rpt=$res;$rpt=preg_replace('/.*<'.$etiqueta.'* '.$tipoid.'="'.$identificador.'">/','<'.$etiqueta.' '.$tipoid.'="'.$identificador.'">',$rpt);$cierres=substr_count($rpt,'</'.$etiqueta.'');for($i=0;$i<$cierres;$i++) { $mpos1=strripos($rpt,'</'.$etiqueta.'>'); $rpt=substr($rpt,0,$mpos1);}echo $rpt;?>
Navegación
Ir a la versión completa