Probleme de conversion accents avec php

Fermé
arad - 11 juin 2012 à 17:21
 arad - 11 juin 2012 à 18:06
Bonjour,

Je suis en train de réaliser un site web dans lequel j'upload des images. Ces images sont classées par catégorie et stockées dans un répertoire portant le nom de cette catégorie.
J'ai donc crée un script qui créer un repertoire (mkdir) s'il n'existe pas. Le script fonctionne, mais lorsque ma catégorie porte un accent (ex:véhicule) je n'arrive pas a convertir la chaine 'véhicule' en 'vehicule'... J'ai pourtant une fonction sensée convertir tout cela :

function stripAccents($string){
return strtr($string,'àáâãäçèéêëìíîïñòóôõöùúûüýÿÀÁÂÃÄÇÈÉÊËÌÍÎÏÑÒÓÔÕÖÙÚÛÜÝ',
'aaaaaceeeeiiiinooooouuuuyyAAAAACEEEEIIIINOOOOOUUUUY');
}

Le problème est qu'au lieu de me convertir le 'é' en 'e' il me le converti en 'Yo'... Je pense que le problème vient de l'encodage (écrit 'é' dans ma base mais affiché 'é' sur mon site) quelqu'un aurait une idée ??
A voir également:

1 réponse

J'ai trouvé la solution si cela peut aider quelqu'un qui aurait le même pb (parce que une vraie galère) aprés avoir essayé tout les strtr et compagnie j'utilise preg-replace de cette facon :

$service = $_POST['nomService'];

// Convertit les lettres UTF8 afin de remplacer les accents
$service = htmlentities($service, ENT_NOQUOTES, 'utf-8');
$service = preg_replace('#\&([A-za-z])(?:uml|circ|tilde|acute|grave|cedil|ring)\;#', '\1', $service);
$service = preg_replace('#\&([A-za-z]{2})(?:lig)\;#','\1', $service);
$service = preg_replace('#\&[^;]+\;#', ", $service);

Et ca marche :p
0