Arrrgh p** d'accents de M*** ! Tu veux une chtite fonction ?

Ñêó

Au menu du jour, une petite fonction qui remplace les lettres accentuées par leur équivalent en html entities.
La différence d'avec les autres, c'est qu'elle marche ;)

[EDIT DU 10 octobre] Le hollandais volant  a eu la gentillesse de prendre deux minutes pour partager une méthode bien meilleure que la mienne Cool !

 

// La méthode Hollandais volant
$texte = htmlentities($texte, ENT_QUOTES, 'UTF-8');

// la mienne qu'est moins bien ;) wink Timo ;) function accents($ch){ $ch = str_replace( explode(' ', 'à á â ä ç è é ê ë ì í î ï ò ó ô ö ù ú û ü ý ÿ À Á Â Ä Ç È É Ê Ë Ì Í Î Ï Ò Ó Ô Ö Ù Ú Û Ü Ý Ñ ñ Õ õ Ã ã'), explode(' ', 'à á â ä ç è é ê ë ì í î ï ò ó ô ö ù ú û ü ý ÿ À Á Â &Auml Ç &Egrave É Ê Ë &Igrave Í Î Ï Ò Ó Ô Ö Ù Ú Û Ü Ý Ñ ñ Õ õ Ã ã'), $ch); return $ch; }

Pour avoir le script direct et en txt: faire enregistrer sous ici: accents.txt

Ouaip... ben avec une bonne vieille expression régulière, ça le faisait...

 

 

 

 

 

Oui, c'est ptêt plus à la mode, mais moi j'en ai testé plein et elles foirent toutes, donc jme ponds celle-là et si t'en veux pas, ne dégoute pas les autres steuplé.

 

 

 

Heureusement que Le hollandais volant nous fournit un truc plus simple, plus rapide, plus complet et moins long... Si on comptait sur toi...

 

❝ 6 commentaires ❞

1  le hollandais volant le

Ça marche, mais c’est long, et non-exhaustif. Perso je préfère ça :


$texte = htmlentities($texte, ENT_QUOTES, 'UTF-8'); // é => é

 
2  Bronco le

Ah ben oui, en effet ça marche super. Ben je vais l'intégrer à l'article direct (avec ta permission)
Jusque là, j'avais pas réussi à faire fonctionner htmlentities comme je voulais...
Merci !

 
3  qwerty le

C'est vrai que c'est un problème récurent !

 
4  le hollandais volant le

Oh ben oui, c’est libre hein


Mais perso j’avais d’avantages de soucis pour les url, et tranformer ainsi :


é => e
è => e
à => a
â => a
œ => oe
etc.


On m’avait donné cette solution (que je poste vu qu’on est dans le truc là) :


// &eacute => é ; é => é : met tout en UTF8 pour uniformiser
$texte = html_entity_decode($texte, ENT_QUOTES, 'UTF-8');


// é => é : met tout en iso avec les &xxxx;
$texte = htmlentities($texte, ENT_QUOTES, 'UTF-8');


// &eacute => e : décortique la signification des « &eacute », où la première lettre est celui qu’on cherche
$texte = preg_replace('#&(.)(acute|grave|circ|uml|cedil|tilde|ring|slash|caron);#', '$1', $texte);


// enfin, la cas des ligatures : œ (o+e), ß (s+z), etc.
$texte = preg_replace('#&([a-z]{2})lig;#i', '$1', $texte);


Et paf, ça fait des chocaPHPic \o/.

 
5  Julien et Nel le

Souvent il suffit de mettre en ut8 comme l'indique Timo .

 
6  Bronco le

MOUHAHAHA j'adore les chocaphpics ! chuis fan de celle-là !

 

Fil RSS des commentaires de cet article

✍ Écrire un commentaire

les commentaires relevant du SPAM seront filtrés et dégagés direct...

Quelle est le dernier caractère du mot btd6f ?