Foros del Web » Programando para Internet » PHP »

SOLUCIONADO Extraer parte de file_get_contents()

Estas en el tema de SOLUCIONADO Extraer parte de file_get_contents() en el foro de PHP en Foros del Web. Buenas tardes, estoy haciendo unas pruebas y me encontré con la necesidad de extraer solo una parte de la cadena devuelta por file_get_contents(). Suponiendo que ...
  #1 (permalink)  
Antiguo 29/08/2011, 08:47
Avatar de McBlink  
Fecha de Ingreso: noviembre-2006
Ubicación: $ARG->LaPampa()
Mensajes: 1.694
Antigüedad: 18 años
Puntos: 23
SOLUCIONADO Extraer parte de file_get_contents()

Buenas tardes,
estoy haciendo unas pruebas y me encontré con la necesidad de extraer solo una parte de la cadena devuelta por file_get_contents().

Suponiendo que la pagina sea ésta:

Código HTML:
Ver original
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  2. <html xmlns="http://www.w3.org/1999/xhtml">
  3. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  4. <title>Documento sin título</title>
  5. </head>
  6.  
  7. <div id="items">
  8. <a>I1</a>
  9. <a>I2</a>
  10. <a>I3</a>
  11. </div>
  12. </body>
  13. </html>
Necesitaría extraer solo la parte del div ITEMS para poder obtener los items..
Probe usando explode() pero no logro dar con el resultado.

Que otra forma de hacerlo tengo?

Gracias!
  #2 (permalink)  
Antiguo 29/08/2011, 08:52
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 15 años, 5 meses
Puntos: 1517
Respuesta: Extraer parte de file_get_contents()

Podrías usar DOM o SimpleXML para parsear el documento.
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #3 (permalink)  
Antiguo 29/08/2011, 09:08
Avatar de andresdzphp
Colaborador
 
Fecha de Ingreso: julio-2011
Ubicación: $this->Colombia;
Mensajes: 2.749
Antigüedad: 13 años, 4 meses
Puntos: 793
Respuesta: Extraer parte de file_get_contents()

También tienes las expresiones regulares, que capture desde el div con ese id (items) hasta la etiqueta de cierre </div>.

más información: [APORTE] Expresiones PCRE
__________________
Si sabemos como leer e interpretar el manual será mucho más fácil aprender PHP. En lugar de confiar en ejemplos o copiar y pegar - PHP
  #4 (permalink)  
Antiguo 29/08/2011, 09:20
Avatar de masterpuppet
Software Craftsman
 
Fecha de Ingreso: enero-2008
Ubicación: Montevideo, Uruguay
Mensajes: 3.550
Antigüedad: 16 años, 10 meses
Puntos: 845
Respuesta: Extraer parte de file_get_contents()

Cita:
Iniciado por abimaelrc Ver Mensaje
Podrías usar DOM o SimpleXML para parsear el documento.
+1, preferible recaer en el parser del DOM, un ejemplo:

Código PHP:
Ver original
  1. $html = <<<XML
  2. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  3. <html xmlns="http://www.w3.org/1999/xhtml">
  4. <head>
  5.     <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  6.     <title>Documento sin título</title>
  7. </head>
  8. <body>
  9.     <div id="items">
  10.         <a>I1</a>
  11.         <a>I2</a>
  12.         <a>I3</a>
  13.     </div>
  14. </body>
  15. </html>
  16. XML;
  17.  
  18. $dom  = DOMDocument::loadHTML($html);
  19. $node = $dom->getElementById('items');
  20. print_r($dom->saveHTML($node));
__________________
http://es.phptherightway.com/
thats us riders :)
  #5 (permalink)  
Antiguo 29/08/2011, 09:26
Avatar de McBlink  
Fecha de Ingreso: noviembre-2006
Ubicación: $ARG->LaPampa()
Mensajes: 1.694
Antigüedad: 18 años
Puntos: 23
Respuesta: Extraer parte de file_get_contents()

Gracias a todos por sus respuestas,
la verdad encontre esta aplicacion que es excelente, y me soluciono todo al toque:

SIMPLE HTML DOM


Espero que a alguien mas le sirva..

Saludos y Gracias!

Etiquetas: html
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 21:31.