Al final he encontrado una función que solo falta mejorarla un poco:
Lo que hace es borrar CUALQUIER tipo de tag que no tenga texto o tenga solo espacios como: Código HTML:
<font size='4'> </font>
<p></p>
<p><span></span></p>
<p> </p>
Faltaría modificarla para que también borre CUALQUIER tipo de tag que solo tenga <br/> y espacios como: Código HTML:
<p><br/></p>
<p><br/><br/></p>
<b><br/> <br/> </b>
Código PHP:
function stripEmptyTags ($result)
{
$regexps = array (
'~<(\w+)\b[^\>]*>\s*</\\1>~'
);
do
{
$string = $result;
$result = preg_replace ($regexps, '', $string);
}
while ($result != $string);
return $result;
}
$string = "<b>texto</b><br/>texto<b><span> </span></b><p> <br/></p><b></b><font size='4'><span></span></font>";
echo stripEmptyTags ($string);