Schon wieder ist es passiert, dass ein nicht geschlossenes HTML-Tag aus den Auszügen mein Layout zerstört hat, aber im Netz lässt sich ja immer schnell eine Lösung finden.
Hier also ein PHP-Codeschnipsel der alle geöffneten HTML-Tags schließt. Zwar keine schöne Lösung, aber was besseres ist mir auf die Schnelle auch nicht eingefallen.
function close_tags($html){
// Alle geöffneten Tags in ein Array
preg_match_all("#<([a-z]+)( .*)?(?!/)>#iU", $html, $result);
$openedtags = $result[1];
// Alle geschlossenen Tags in ein Array
preg_match_all("#</([a-z]+)>#iU",$html,$result);
$closedtags = $result[1];
$lenght = count($openedtags);
// Alle Tags geschlossen
if(count($closedtags) == $lenght)
return $html;
$openedtags = array_reverse($openedtags);
// Tags schließen
for($i = 0; $i < $lenght; $i++) {
if (!in_array($openedtags[$i],$closedtags))
$html .= '</'.$openedtags[$i].'>';
else
unset($closedtags[array_search($openedtags[$i],$closedtags)]);
}
return $html;
}
Quelle: textsnippets.com



