Bonjour,
J'utilise habituellement la même petites fonction à base de regex depuis des années pour nettoyer mes chaines de caractères de leurs espaces et accents :
Seulement voilà, je démarre pour le coup un projet en UTF-8, et visiblement, comme pour beaucoup d'autres fonction de PHP, ça pose un problème !
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 $in= preg_replace("#\[.*\]#iU", "", $in); $search = array ('@[éèêëÊË]@i','@[àâäÂÄ]@i','@[îïÎÏ]@i','@[ûùüÛÜ]@i','@[ôöÔÖ]@i','@[ç]@i','@[ ]@i','@[^a-zA-Z0-9_]@'); $replace = array ('e','a','i','u','o','c','',''); $login = preg_replace($search, $replace, $in);
Donc si je lui donne à manger la chaine "&éç èzezêéxà", en charset iso-8859-1, pas de problème, il me retourne :
par contre, une fois que je passe en charset UTF-8, la même chose me donne :ecezezeexa
Dans la plupart des fonctions de gestion de texte PHP, on à la possibilité de spécifier le charset, mais ça ne semble pas être le cas pour les preg...eeeceezezeeeexea
Quelqu'un aurait-il la bonté de me dire comment doivent être gérer les preg lorsque l'on est en UTF-8 ?
En vous remerciant par avance !
Partager