Nein... das meine ich nicht.
Man braucht nur eine Umkehrfunktion, wenn man eingegebene Daten plus <br />s in der Datenbank abspeichert. (find ich dreckig

)
Ich bin der Meinung das das nl2br bei der Ausgabe zu greifen hat und nicht in der DB gebraucht wird.
Die Umkehrfunktion wird also nur benötigt, weil du wahrscheinlich deinen Datensatz in eine Textarea nehmen willst und editieren willst, richtig?
Was machst du wenn du Daten inkl. <br />s in die Datenbank schiebst und im Text Umlaute vorhanden sind? Da spätestens bei der Ausgabe ein htmlentities zwingend notwendig ist, musst du hier schon das htmlentities-Array verändern (nämlich < und > rausschmeissen). Man könnte natürlich vorher ein htmlentites drüber hauen... aber danach wäre "reines" HTML in der Datenbank. Eine Suche nach Wörtern, die z.B Umlaute enthalten wäre somit ausgeschlossen. Es sei denn man baut seinen eigenen Search-Index vor dem htmlentites auf, indem die Wörter nicht behandelt wurden.
...daher, meine ich, dass man htmlentites und nl2br ganz normal wärend der Ausgabe ausführen sollte.
Den Weg den du gehen willst ist doch viel zu kompliziert, wenn man sich meine Hinweise anschaut, oder denke nur ich so? Klar kann man jetzt mit dem Thema Performance kommen... aber durch die Bearbeitung der Zeichenketten vor einem Insert werden diese doch auch grösser. Und schlagen somit auch in die Performance der Datenbank ein. (Abgesehen von dem Trara, das man machen muss, wenn man die Inhalte wieder veröndern will)Die Funkion nl2br ist sauschnell. Z.B. wird jeder Beitrag, der im TP dargestellt wird, vor der Ausgabe ebenfalls durch nl2br geschickt...
Soweit mein kleines Statement
Gruss
Jan