J'ai lu WordPress professionnel et il est écrit:
La fonction
esc_html
est utilisée pour nettoyer les données contenant du HTML. Cette fonction code des caractères spéciaux dans leurs entités HTMLLa fonction
esc_attr
est utilisée pour échapper des attributs HTML
esc_url
. Cette fonction doit être utilisée pour nettoyer l'URL des caractères illégaux. Même si techniquement, le href est un attribut HTML
Quelle est la différence entre ceux-ci?
Si j'ai
<script>alert('hello world!');</script>this is some content
Est-ce que tous les < >
seraient convertis en < >
? Est-ce que l'URL sera quelque chose comme %xxx
?
esc_html
et esc_attr
sont presque identiques, la seule différence est que la sortie est transmise à travers des filtres portant un nom différent (respectivement esc_html
et attribute_escape
).
esc_url
est plus complexe et spécifique, il traite des caractères qui ne peuvent pas être dans les URL et des protocoles autorisés (dont la liste peut être passée comme second argument). Il ajoutera également une entrée avec le protocole http://
s'il n'est pas présent (et que le lien n'est pas relatif).