Ver Mensaje Individual
  #6 (permalink)  
Antiguo 05/10/2011, 13:27
Avatar de andresdzphp
andresdzphp
Colaborador
 
Fecha de Ingreso: julio-2011
Ubicación: $this->Colombia;
Mensajes: 2.749
Antigüedad: 13 años, 5 meses
Puntos: 793
Respuesta: Como extraer secciones de texto de un html o txt?

He estado jugando un poco con el código, usando tidy como dice Artificium, coloco lo que hice:

Código PHP:
Ver original
  1. <?php
  2. $config = array('indent' => true, 'output-xhtml' => true, 'wrap' => 200);
  3.  
  4. $t = new tidy();
  5. $t->parseString($html, $config, 'utf8');
  6. $t->cleanRepair();
  7.  
  8. $doc = new DOMDocument();
  9. $doc->loadHTML($t);
  10. $divs = $doc->getElementsByTagName('div');
  11.  
  12. for ($i = 0; $i < $divs->length; $i++) {
  13.     $pc = $divs->item($i)
  14.                ->getElementsByTagName('p')
  15.                ->item(2);
  16.     $font = $pc->getElementsByTagName('font')->item(0);
  17.     if ($font != null) {
  18.         $pc->removeChild($font);
  19.     }
  20.     $p = $divs->item($i)->getElementsByTagName('p');
  21.     for ($j = 0; $j < $p->length; $j++) {
  22.         echo $divs->item($i)
  23.                   ->getElementsByTagName('p')
  24.                   ->item($j)
  25.                   ->nodeValue . '<br />';
  26.     }
  27.     echo '<br />';
  28. }
Faltan algunas validaciones y puede que se puede hacer de mejor forma y más simplificado, pero funciona con el HTML del post. Espero que te sirva o le sirva a alguién más.

Saludos.
__________________
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