DevKB
Web Development Knowledge Base
HOME | TOP 20 | WRITE AN ARTICLE |
Sections :


RSS RSS Feed

Vous aussi, aidez les autres développeurs, publiez vos bouts de codes utiles et vos liens préférés ...
Publiez un article !


Valid HTML 4.0 Transitional

Plateforme d'envoi de gros fichiers en ligne
Script PHP de boutique en ligne
Mondes virtuels gratuits en 3D

Aurélie Dufour - - 25/05/2009 - vue 279 fois

Passer une chaîne de caractères en majuscules, y compris les caractères accentués

En PHP, on a l'habitude d'utiliser la fonction strtoupper (string to upper case), pour passer une chaîne de caractères en majuscules. Sous un environnment de développement Windows, elle ne pose pas de problèmes pour passer en majuscules les caractères accentués ("à","é","ï","ô",ù"...). En revanche, sous Linux, ça ne passe pas : cet OS est sensible à la casse...

Il est donc préférable d'avoir recours à la fonction mb_strtoupper, qui elle convertira tous les caractères accentués.

Petit exemple ci-dessous, avec ce script PHP :

<?php 
	$ch = "Ma boîte de réception est saturée : ça ira mieux si j'élimine les messages indésirables.";
	echo "Avec strtoupper, ça donne : <br />";
	echo strtoupper($ch);
	echo "<br /><br />";
	echo "Avec mb_strtoupper, en revanche, cela donne : <br />";
	echo mb_strtoupper($ch);
?>

Sous Windows, aucun souci, vous aurez à chaque fois une belle phrase, bien accentuée et bien passée en majuscules :

Avec strtoupper, ça donne : 
MA BOÎTE DE RÉCEPTION EST SATURÉE : ÇA IRA MIEUX SI J'ÉLIMINE LES MESSAGES INDÉSIRABLES.

Avec mb_strtoupper, en revanche, cela donne : 
MA BOÎTE DE RÉCEPTION EST SATURÉE : ÇA IRA MIEUX SI J'ÉLIMINE LES MESSAGES INDÉSIRABLES.

Mais sous un environnement Linux, sensible à la casse, ça ne donnera pas la même chose :

Avec strtoupper, ça donne : 
MA BOîTE DE RéCEPTION EST SATURéE : çA IRA MIEUX SI J'éLIMINE LES MESSAGES INDéSIRABLES.

Avec mb_strtoupper, en revanche, cela donne : 
MA BOÎTE DE RÉCEPTION EST SATURÉE : ÇA IRA MIEUX SI J'ÉLIMINE LES MESSAGES INDÉSIRABLES.

Voilà, ayez maintenant le réflexe mb_strtoupper pour éviter de perdre du temps sur de l'encodage...

Plus d'informations avec la doc officielle de PHP : fr.php.net/manual/fr/function.mb-strtoupper.php




Write a comment :
Your name :     E-mail (optional) :

AntiSpam : please write the result of 496 x 912 =