Majuscules accentuées , fonction stroupper améliorée.

Contenu du snippet

La strtoupper() en PHP renvoit la mêmes fonction que ci-dessous mais ignore les carractères accentués, par exemple stroupper(?écologie?) renvoit ?éCOLOGIE? et même pas ?ECOLOGIE? . Ces fonctions sont donc un moyen de remedier à ce problême, que le charset de votre page WEB ou de vos données soient en ISO ou en UTF-8.

Pouquoi accentuer les majuscules? Parfois le sens d'une phrase peut changer si ne vous le faites pas, par exemple ? je suis indigné ? deviendrait ? JE SUIS INDIGNE ? . En toute logique le français préconise donc l'accentuation des majuscules que ce soit sur le début d'un mot ou sur une phrase complète.

Source / Exemple :


<? php //fonction stroupper en français

function uc_strtoupper_fr($chaine)
{
$chaine=strtoupper($chaine);$chaine=utf8_decode($chaine);$chaine=trim($chaine);
$chaine = strtr($chaine, ?äâàáåãéèëêòóôõöøìíîïùúûüýñçþÿæ?ðø?,?ÄÂÀÁÅÃÉÈËÊÒÓÔÕÖØÌÍÎÏÙÚÛÜÝÑÇÞÝÆ?ÐØ?);
$chaine=utf8_encode($chaine);
return $chaine;
}

//Pour appeler la fonction:
echo uc_strtouper_fr($variable);

//par exemple
$variable=?je suis indigné?;
echo utf8_maj_fr($variable);

// renvoit : JE SUIS INDIGNÉ

/*Par défaut la fonction renvoit un chaîne encodée UTF-8, si vous voulez qu'à la sortie le mot soit encodé en ISO supprimez ou mettez en commentaire la ligne suivante:*/

$chaine=utf8_encode($chaine);

/*Remarque: Cette fonction peut être utilisée si vous ignorez le charset de la chaîne de carractères à traiter, par exemple si la chaîne provient d'un flux RSS ou d'une base de donnée extérieure à votre site WEB. Si vous êtes sur que le charset est en ISO le prochain script utilise une fonction moins gourmande en ressources .*/
?>

<? php //fonction stroupper en Francais avec un charset ISO

function iso_strtoupper_fr($chaine)
{
$chaine=strtoupper($chaine);$chaine=trim($chaine); 
$chaine = strtr($chaine, ?äâàáåãéèëêòóôõöøìíîïùúûüýñçþÿæ?ðø?,?ÄÂÀÁÅÃÉÈËÊÒÓÔÕÖØÌÍÎÏÙÚÛÜÝÑÇÞÝÆ?ÐØ?);
return $chaine;
}

//Pour appeler la fonction:
echo iso_strtouper_fr($variable);

/*Par défaut la fonction renvoit un chaîne encodée ISO, si vous voulez qu'à la sortie le mot soit encodé en UTF-8 ajoutez la ligne suivante avant la ligne ? return $chaine;?:*/

$chaine=utf8_encode($chaine);
?>

Conclusion :


C'est ma premiere et modeste contribution, j'ai eu beau chercher cette fonction quelque part sur le Net , j'ai rien trouvé ... Si vous rencontrez un bug ou si vous avez une idées pour l'optimiser ...
;)

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.