Moin!
Und als Einzeiler:
$old = preg_replace( "/\n+/", "\n", str_replace(array ("<", ">"), array ("\n<", ">\n"), $old) );
Das vorherige Löschen der Zeilenumbrüche in den Texten halte ich für Nonsens.
MFFG (Mit freundlich- friedfertigem Grinsen)
fastix