Moin moin!
Das Problem ist die Formatierung von highlight_syntax(), das hängt nämlich an jede Codezeile ein Newline _und_ ein Break an. Und wenn du dann mit nl2br() die Newlines durch Breaks ersetzt, hast du zwei Breaks hintereinander.
Ein Möglicher Workaround ist
$formattedcode=highlight_string($phpcode,true);
durch
$formattedcode=str_replace("<br />", "",highlight_string($phpcode,true));
zu ersetzen.
Hoffe, das hilft dir weiter.
ciao,
hofi