PHP et strtr()
mariostar27
Messages postés
442
Statut
Membre
-
Utilisateur anonyme -
Utilisateur anonyme -
Bonjour,
Voila j'utilise la fonction strtr() pour modifier des caractères, voici mon code :
Au final, pour un nom comme ceci : déclaration j'obtiens da_claration.
Pourquoi strtr ne me change pas le caractère mais me l'ajoute ???
Pourquoi est-ce un a plutôt qu'un e ???
Pourquoi ai-je un _ alors que je ne devrais pas en avoir ???
Merci d'avance ^^
--
gwennael
Voila j'utilise la fonction strtr() pour modifier des caractères, voici mon code :
$fichier = strtr($fichier,
"ÀÁÂÃÄÅÇÈÉÊËÌÍÎÏÒÓÔÕÖÙÚÛÜÝàáâãäåçèéêëìíîïðòóôõöùúûüýÿ",
"aaaaaaceeeeiiiiooooouuuuyaaaaaaceeeeiiiioooooouuuuyy");
$fichier = preg_replace('/([^.a-z0-9]+)/i', '_', $fichier);
echo $fichier."<br/>";
Au final, pour un nom comme ceci : déclaration j'obtiens da_claration.
Pourquoi strtr ne me change pas le caractère mais me l'ajoute ???
Pourquoi est-ce un a plutôt qu'un e ???
Pourquoi ai-je un _ alors que je ne devrais pas en avoir ???
Merci d'avance ^^
--
gwennael
2 réponses
-
Bonjour,
Tu as très probablement un problème d'encodage.
Je dirais que ton fichier est en UTF-8, alors que ton script PHP est en ANSI.
Convertis les deux dans le même encodage (préférentiellement l'UTF-8 pour les deux), et tout devrait aller mieux.
Xavier -
Est-ce qu'au départ, $fichier="déclaration" ? J'ai copié ton code tel quel moi ça me sort declaration, normal...