He estado jugando un poco con el código, usando
tidy como dice
Artificium, coloco lo que hice:
Código PHP:
Ver original<?php
$config = array('indent' => true, 'output-xhtml' => true, 'wrap' => 200);
$t = new tidy();
$t->parseString($html, $config, 'utf8');
$t->cleanRepair();
$doc = new DOMDocument();
$doc->loadHTML($t);
$divs = $doc->getElementsByTagName('div');
for ($i = 0; $i < $divs->length; $i++) {
$pc = $divs->item($i)
->getElementsByTagName('p')
->item(2);
$font = $pc->getElementsByTagName('font')->item(0);
if ($font != null) {
$pc->removeChild($font);
}
$p = $divs->item($i)->getElementsByTagName('p');
for ($j = 0; $j < $p->length; $j++) {
echo $divs->item($i)
->getElementsByTagName('p')
->item($j)
->nodeValue . '<br />';
}
echo '<br />';
}
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.