Sólo como posibilidad (no logro meterme bien en tu código), mira el segundo foreach, dice
Código PHP:
Ver originalforeach($campo->find('td') as $campo2){
De ahí adelante, en ese bloque, ¿no estarás confundiendo las variables $campo y $campo2:
Código PHP:
Ver originalforeach($campo->find('td') as $campo2){
if( $campo2->plaintext != ''){
$descripcion[$cont] .= "<p>".$campo2->plaintext."</p>";
if($cont == 0)
+$cont;}else{
foreach($campo2->find('img') as $img){
$descripcion[$cont] .= "<p>".$img->title."</p>";
if($cont == 0)
+$cont;}