Und dann? Beim Einlesen des Textes htmlspecialchars_decode() drüberlaufen lassen? Dann kann man es doch gleich lassen. Als Speichermedium wurde eine Datenbank genannt. Da benötigt man gemeinhin eine spezielle Behandlung nur wenn die Daten in einem SQL-Statement eingebettet zu ihr hintransportiert werden. Es ist unnötig, sich in der Situation mit HTML zu beschäftigen.
ich hab mich denke ich unklar ausgedrückt - htmlspecialchars() würde ich NUR für die frontendausgabe verwenden, in der datenbank landet das unbehandelt
eingaben in backend werden 1:1 in der datenbank gespeichert
änderungen die im backend durchgeführt werden, kommen exakt wie eingegeben wieder aus der datenbank, werden bearbeitet und wieder so gespeichert
ausgaben die ans fontend geschickt werden laufen durch einen parser - dieser führt zunächst mal ein htmlspecialchars() aus und formatiert das dann medientypgerecht (er ersetzt umbrüche durch br bzw p-elemente), ersetzt die entsprechende markierung für eine überschrift durch entsprechende hX-elemente usw