Pas mieux.
Une bonne solution (enfin ptet pas pour PHP mais bon...) c'est un langage de templating qui htmlencode tout par défaut, et te laisse marquer des chaînes/objets/impressions comme étant "safe" et à ne pas échapper.
Au delà de ça, si tu le fais avant l'affichage et que tu stockes le résultat tu vas te retrouver avec un bordel monstre de trucs pouvant ou non être encodés, et ça va te pêter à la gueule.
---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody