De la documentation PHP pour htmlentities:
Cette fonction est identique à htmlspecialchars()
de toutes les manières, sauf qu'avec htmlentities()
, tous les caractères qui ont des équivalents d'entités de caractères HTML sont traduits en ces entités.
De la documentation PHP pour htmlspecialchars:
Certains caractères ont une signification spéciale en HTML et doivent être représentés par des entités HTML s'ils doivent conserver leur signification. Cette fonction renvoie une chaîne avec certaines de ces conversions effectuées ; les traductions effectuées sont celles les plus utiles pour la programmation web quotidienne. Si vous avez besoin que toutes les entités de caractères HTML soient traduites, utilisez plutôt htmlentities()
.
La différence réside dans ce qui est encodé. Les choix sont tout (entités) ou les caractères "spéciaux", comme l'esperluette, les guillemets doubles et simples, moins que et plus grand que (specialchars).
Je préfère utiliser htmlspecialchars
chaque fois que possible.
Par exemple:
echo htmlentities('.');
// Output: <Il était une fois un être>.
// ^^^^^^^^ ^^^^^^^
echo htmlspecialchars('.');
// Output: <Il était une fois un être>.
// ^ ^