Jag tycker kanske inte det är helt rätt men för att ge ett bra svar beror det lite på vart du sparar texten.
Sparar du till textfil måste du ta hänsyn till vilket/vilka tecken som används som separator men sparar du till exempelvis MySQL, som kanske är det vanligaste idag, så behöver du endast ta hänsyn till tecken som kan bryta koden i din insert. Sedan är det ett missförstånd att man måste ta hand om html-kod när någon postar. Kör du du mot en databas så använd addslashes() och först när något hämtas och ska presenteras på sidan så bestämmer du vad som ska tillåtas.
Exempelvis: $text = nl2br(htmlentities(stripslashes($text))); är en bra start. I det här läget finns ju heller ingen anledning att pilla ihop någon funktion för att "återsälla" som i länkexemplet eftersom vi redan har orginalet i databasen.