"This function is sensible to the current locale, namely the LC_CTYPE category (the default LC_CTYPE category is set from the LANG environment variable or by an explicit LC_CTYPE setting, but it can be overriden by the LC_ALL environment setting). If no locale setting is done in the environment, the default locale will be C, for which the lowercase/uppercase conversion is based on the default character set of the system: this may convert only ASCII letters, or also ISO-8859-1 letters depending on the system..." (commentaire du 12-Sep-2002)Comment transformer en minuscules un texte codé en UTF-8 ?
Le premier reflexe serait de créer une fonction décodant en UTF-8 vers ISO-8859-1, puis de mettre en minuscules et de ré-encoder en UTF-8:
$texte_MAJ_min="Marie A Un Petit Agneau Et Elle L'Aime BEAUCOUP.";
$texte_min=utf8_encode(strtolower(utf8_decode($x)));
Certes, cela fonctionne...
Mais il existe une fonction PHP permettant de résoudre ce problème:
mb_strtolower
(PHP 4 >= 4.3.0, PHP 5)
mb_strtolower — Met tous les caractères en minuscules
Description
string mb_strtolower ( string str [, string encoding] )
mb_strtolower() retourne la chaîne str après avoir converti tous les caractères alphabétiques en minuscules.
encoding spécifie le jeu de caractères de la chaîne str ; s'il est omis, le jeu de caractères interne sera utilisé.
il suffit donc d'utiliser la fonction:
$texte_MAJ_min = "Marie A Un Petit Agneau Et Elle L'Aime BEAUCOUP.";
$texte_min = mb_strtolower($texte_MAJ_min,'UTF-8');
4 commentaires:
Merci pour l'astuce. Très utile.
Oui, ça m'a rendu service aussi. Merci beaucoup.
super l'astuce ! merci tu m'as sauvé et enlevé les de mes textes ^^
thx you
franchement merci énormément pour cette astuce
Enregistrer un commentaire