Problème avec les accents

Eléphant du PHP | 54 Messages

14 mars 2007, 15:03

Bijour !

Alors voila, j'ai un petit soucis avec une fonction que j'ai trouver sur le forum :
function normalize_file_name($filename) {  
    $accentue = array('à','ç','é','è','ê','ë','ï','î','ö','ô','ù',  
    'À','â','Ç','É','È','Ê','Ë','Ï','Î','Ö','Ô','Ù');  
    $normal   = array('a','c','e','e','e','e','i','i','o','o','u',  
    'A','a','C','E','E','E','E','I','I','O','O','U');  
    return str_replace ($accentue, $normal, $filename);  
}
J'ai essayer de l'adapter à mon code comme ceci :
function normalize_file_name($filename) {  
    $accentue = array('à','ç','é','è','ê','ë','ï','î','ö','ô','ù',  
    'À','â','Ç','É','È','Ê','Ë','Ï','Î','Ö','Ô','Ù');  
    $normal   = array('a','c','e','e','e','e','i','i','o','o','u',  
    'A','a','C','E','E','E','E','I','I','O','O','U');  
    return str_replace ($accentue, $normal, $filename);  
} 

	$prenom = normalize_file_name($prenom);
	$nom = normalize_file_name($nom);
	
	$prenom = strtolower($prenom);
	$nom = strtolower($nom);
	
	//On concatène la première lettre du prénom et on ajoute le nom
	{
	$mail =$prenom{0}.".".$nom."@free.fr";	  
	}
	//Sinon les deux premières lettres
	{ 
	$mail2 = $prenom{0}.$prenom{1}.".".$nom."@free.fr";	
	}
Et le problème est que quand j'exécute mon code tous seul dans une page de test aucun soucis ( j'ai tester avec des echo sa m'affiche bien mon nom et prénom sans accent et en minusucle ) mais autrement la conversion ne se fais pas et j'obtiens des trucs de ce genre en base de donnée, par contre le strtolower fonctionne bien dans tous les cas !

Code : Tout sélectionner

éééééééééééà Ã
Si quelqu'un aurais une idée ! merci d'avance !

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

14 mars 2007, 15:35

Tu as un problème de charset, c'est à dire un mélange entre des caractères ISO et UTF-8, ce qui fait que tes accents sont transformés en é.
Vérifies donc les charset que tu utilises pour envoyer et stocker tes données et regarde éventuellement du coté de la fonction utf8_decode() :)
Ce n'est pas en améliorant la bougie que l'on a inventé l'ampoule...

Eléphant du PHP | 54 Messages

16 mars 2007, 12:29

Merci, c'étais bien ça :wink: