Php - Remplacer les accents par leurs valeurs html
ARCHIVE
Il se peut que vous ayez à afficher une chaîne de caractères comprenant des caractères accentués en utf8, ainsi que du code html, et que vous souhaitiez pouvoir afficher ces caractères accentués quelque soit l?encodage de la page (par exemple dans le cas d?un javascript qui afficherait du code html avec des accents) .
La fonction ci-dessous se contente de ne remplacer que les caractères accentués, et laisse intact les entités html.
Avantage par rapport à htmlentities ? Elle laissera vos balises html intactes, sans > ou ce genre d'expressions ...
Le code PHP :
<?php Function accents_entities($string){ // On commence par transformer les caractères utf8 en iso « ordinaire » $string = utf8_decode($string) ; // On définit la liste des caractères à remplacer : $caracteres=array('é','è','à','ë','ê','û','ü','ù','î','ï', 'ô', 'ö'); // On définit les entités qui les remplaceront : $entities=array('é', 'è', 'à', 'ë', 'ê', 'û', 'ü', 'ù', 'î', 'ï', 'ô', 'ö'); // On applique le remplacement : $string = str_replace($caracteres,$entities,$string); // On retourne la nouvelle chaine : Return $string ; } ?>Usage :
<?php $chaine = accents_entities($chaine); ?>
Exemple :
<?php $chaine = 'Elle va être pratique cette fonction codée par Grégoire'; // On passe la chaine en UTF8, pour tester : $chaine=utf8_encode($chaine); $chaine = accents_entities($chaine); ?>Vous retournera : Elle va être pratique cette fonction codée par Grégoire