Hallo Felix,
$test = preg_replace('~(?s)[\r\n]{2}~', '', $test);
Ui. Diese regulären Ausdrücke :-)
Im Übrigen solltest Du Deine Anwendung so schreiben, dass sie nicht auf exakte Vorgaben bei Zeilenumbrüchen angewiesen ist. Dafür eigenen sich diese preg_*-Funktionen sehr gut. Man kann damit sehr flexibel auf jeglichen HTML-Code losgehen, um seine Manipulationen trotz irgendwelcher Varianten im Code an der richtigen Stelle vorzunehmen. RegExe lohnen sich extremst!
Sind aber auch extremst schwierig zu beherrschen ;-)
Wenn Du nicht weißt, was da "unterwegs" passiert, dann benötigst Du eine Kontrollausgabe:
file_put_contents('./debug.txt', $test);
Habe ich gemacht. Die enthält dann letztlich nur die letzte Zeile aller Strings, die per Schleife durchforstet werden.
Übrigens, der Hex-Code für meine \n\n ist 0A0A.
Kai