• Domingo 22 de Diciembre de 2024, 07:10

Autor Tema:  leer html desde php  (Leído 6936 veces)

jodijo5

  • Miembro HIPER activo
  • ****
  • Mensajes: 518
  • Nacionalidad: pe
    • Ver Perfil
    • http://www.bluetecnologia.com
leer html desde php
« en: Jueves 1 de Abril de 2010, 20:35 »
0
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
  1.  
  2. <?php
  3. $la_pagina='http://localhost/prueba1/uno.html';
  4. $opts = array('http' =>array(
  5.                 'method'  => 'GET',
  6.                 'header'  => 'Content-type: application/x-www-form-urlencoded',
  7.                 //'content' => $postdata
  8. ));
  9.  
  10. $context  = stream_context_create($opts);
  11.  
  12. $res= file_get_contents($la_pagina, false, $context);
  13. //el contenido HTML de la pagina se guarda en la variable $res,
  14. //y desde ahi tengo que extraer el contenido de la etiqueta <div id="cuerpo">
  15. ?>
  16.  
  17.  
mi problema está en que no se como extraer la info de esa etiqueta :-( porfavor ayudenme :-)

Gracias de antemano por su colaboracion
=============================
Daniel Pomalaza Mendoza
visita el Dinosaurio Azul :-D
http://bluetecnologia.com

DriverOp

  • Miembro MUY activo
  • ***
  • Mensajes: 201
    • Ver Perfil
Re: leer html desde php
« Respuesta #1 en: Viernes 2 de Abril de 2010, 01:29 »
0
Esto debería funcionar:
Código: PHP
  1. <?php
  2. $texto = "<div id="cuerpo">Esto es el texto</div>";
  3.  
  4. $patron = "/<div id="cuerpo">(.*?)</div>/is";
  5. $devuelve = preg_match($patron,$texto,$coincidencias);
  6. echo "<br>Devuelve<pre>";
  7. var_dump($devuelve);
  8. var_dump($coincidencias);
  9. echo "</pre>";
  10. ?>
  11.  

jodijo5

  • Miembro HIPER activo
  • ****
  • Mensajes: 518
  • Nacionalidad: pe
    • Ver Perfil
    • http://www.bluetecnologia.com
Re: leer html desde php
« Respuesta #2 en: Viernes 2 de Abril de 2010, 04:12 »
0
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:
=============================
Daniel Pomalaza Mendoza
visita el Dinosaurio Azul :-D
http://bluetecnologia.com

jodijo5

  • Miembro HIPER activo
  • ****
  • Mensajes: 518
  • Nacionalidad: pe
    • Ver Perfil
    • http://www.bluetecnologia.com
Re: leer html desde php
« Respuesta #3 en: Viernes 2 de Abril de 2010, 18:41 »
0
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
  1.  
  2. <?php
  3. $direccion=$_GET["opc"];
  4. $identificador='history';
  5. $tipoid='class';
  6. $etiqueta='div';
  7. $opts = array('http' =>array(
  8.                 'method'  => 'GET',
  9.                 'header'  => 'Content-type: application/x-www-form-urlencoded',
  10. ));
  11.  
  12. $context  = stream_context_create($opts);
  13.  
  14. $res= file_get_contents($direccion, false, $context);
  15. $rpt=$res;
  16. $rpt=preg_replace('/.*<'.$etiqueta.'* '.$tipoid.'="'.$identificador.'">/','<'.$etiqueta.' '.$tipoid.'="'.$identificador.'">',$rpt);
  17. $cierres=substr_count($rpt,'</'.$etiqueta.'');
  18. for($i=0;$i<$cierres;$i++) {
  19.     $mpos1=strripos($rpt,'</'.$etiqueta.'>');
  20.     $rpt=substr($rpt,0,$mpos1);
  21. }
  22. echo $rpt;
  23. ?>
  24.  
  25.  
=============================
Daniel Pomalaza Mendoza
visita el Dinosaurio Azul :-D
http://bluetecnologia.com