Pourquoi les apostrophes apparaissent en &#039 avec PHP ?

Réponses rédigées par Antoine
Dernière mise à jour : 2022-05-07 12:33:27
Thèmes : php - apostrophe
Question

Bonjour je fais un echo du nom d'une ville qui contient un apostrophe, et à la place de l'apostrophe j'ai &#039 qui s'affiche.

Réponse

&#039 est l'entité HTML de l'apostrophe. Pour convertir une entité HTML en son caractère correspondant, vous devez utiliser la fonction PHP html_entity_decode :

<?php
$ville = html_entity_decode($ville);
?>

Remarque : Vous devez surement récupérer la variable ville suite à un appel Ajax, où vous n'avez pas utilisé la fonction JavaScript encodeURIComponent(). C'est plausiblement pour cette raison que coté serveur, en PHP, vous récupérez les apostrophes sous la forme d'une entité HTML.