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('&eacute;', '&egrave;', '&agrave;', '&euml;', '&ecirc;', '&ucirc;', '&uuml;', '&ugrave;', '&icirc;', '&iuml;', '&ocirc;', '&ouml;'); // 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 &ecirc;tre pratique cette fonction cod&eacute;e par Gr&eacute;goire
Une question? Une remarque? Un avis? Twittons-en!

When you click on links to various merchants on this site and make a purchase, this can result in this site earning a commission.
Affiliate programs and affiliations include, but are not limited to, the eBay Partner Network and Amazon.