salut,
C'est simplement parce que tu ne feras peux être pas que du html avec tout cela et que du coup c'est "con" d'enregistrer un & ou ˆ qui ne sera peux être pas compris par ta cible.
Imagine un export excel, CSV, PDF, ou je ne sais quoi d'autre, il y a de forte chance pour que tes entités html t'emmerde.
Du coup données brutes en base et htmlspecialchars ou htmlentities à l'affichage.
Si c'est le fait de l'utiliser à chaque fois et que tu as peur que cela soit un goulot de perf oriente toi vers une solution de cache afin de ne régénérer les pages que lorsqu'il y a besoin.
Il y a des solutions existantes ou tu peux le faire toi même en enregistrant le ficher sur le disque, a l'appel de la page tu regardes si elle existe en cache, si oui tu envoi le cache au navigateur si non génération de la page et création du fichier de cache.
Il faut quand même penser à la politique de cache (durée, taille, on met quoi en cache etc).
Les serveur, web / proxy et les navigateurs ont déjà des caches tu peux aussi t'appuyer dessus en indiquant correctement l'entête expire
@+