Page 1 sur 1

preg_replace !!

Posté : 09 févr. 2011, 02:29
par soundlight1
Bonjour a tous j'utilise ce bout de code (source d’Olivier sur le sujet) pour nettoyer les accents de mon nom de ville et le passer en Majuscules.

il marchait à l'origine mais je ne sais pour quelles raisons il ne fonctionne plus

Pour le moment il me détecte une variable non nul mais vide lorsque mon texte contient un accent.

il passe bien le contenu en majuscule si il n'y as pas d'accent dans mon texte de base.

Quelqu'un aurait-il la solution à mon problème?

Merci d'avance
function wd_remove_accents($str, $charset='utf-8')
{
    $str = htmlentities($str, ENT_NOQUOTES, $charset);
    
    $str = preg_replace('#\&([A-za-z])(?:acute|cedil|circ|grave|ring|tilde|uml)\;#', '\1', $str);
    $str = preg_replace('#\&([A-za-z]{2})(?:lig)\;#', '\1', $str); // pour les ligatures e.g. 'œ'
    $str = preg_replace('#\&[^;]+\;#', '', $str); // supprime les autres caractères
    
    return $str;
}
if (!empty ($_POST['VILLE']))
{
	$ville = wd_remove_accents($_POST['VILLE']);
	$ville = ucwords(strtoupper($ville));
}

Re: preg_replace !!

Posté : 09 févr. 2011, 10:19
par stealth35
ton code PHP est bien en utf-8 ?

Re: preg_replace !!

Posté : 09 févr. 2011, 12:32
par soundlight1
Pfff quel erreur de bêta !!!!

J' étais en mode teste donc pas mis d'entête donc pas de charset chargé !!!!!

Merci