Dans la documentation PHP de Identités html :
Cette fonction est identique à htmlspecialchars()
dans tous les domaines, sauf avec htmlentities()
tous les caractères qui ont des équivalents en entités de caractères HTML sont traduits dans ces entités.
Dans la documentation PHP de htmlspecialchars :
Certains caractères ont une signification particulière en HTML, et doivent être représentés par des entités HTML si l'on veut qu'ils conservent leur signification. Cette fonction renvoie une chaîne de caractères avec certaines de ces conversions effectuées ; les traductions effectuées sont celles qui sont les plus utiles pour la programmation Web quotidienne. Si vous souhaitez que toutes les entités de caractères HTML soient traduites, utilisez la fonction htmlentities()
à la place.
La différence est ce qui est encodé. Les choix sont tout (entités) ou des caractères "spéciaux", comme l'esperluette, les guillemets doubles et simples, moins que et plus que (caractères spéciaux).
Je préfère utiliser htmlspecialchars
dans la mesure du possible.
Par exemple :
echo htmlentities('<Il était une fois un être>.');
// Output: <Il était une fois un être>.
// ^^^^^^^^ ^^^^^^^
echo htmlspecialchars('<Il était une fois un être>.');
// Output: <Il était une fois un être>.
// ^ ^