PHP – Majuscules et accents
Scripts PHP pour mettre en majuscule les carractères accentués mb_strtoupper ne fonctionne pas sur votre serveur ? :
Par exemple vous voulez que « écologie » devienne « Écologie » (en respectant les règles du français ).
Remarque: Les fonction ucfirst() ou strtoupper() natives du language PHP renvoient les mêmes fonctions ci-dessous mais ignorent les carractères accentués, par exemple ucfirst(« é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.
Sommaire:
- Mettre en majuscule le premier carractère d’une chaine UTF-8 ou ISO en PHP
- Mettre en majuscule le premier carractère d’une chaine ISO en PHP
- Mettre en majuscule une chaine UTF-8 ou ISO en PHP
- Mettre en majuscule une chaine carractères ISO en PHP
::Fonction PHP ucfirst() en Français : mise en majuscule de la premiere lettre d’une chaine de carractères encodée en UTF-8 (unicode) ou ISO.
php ////////////////////////////////////////////////////////////////////////////////////////////function utf8_maj_fr($mot) { $mot=utf8_decode($mot);
$mot=trim($mot);
$maj=$mot[0];
$maj = strtr($maj, « äâàáåãéèëêòóôõöøìíîïùúûüýñçþÿæœðø », »ÄÂÀÁÅÃÉÈËÊÒÓÔÕÖØÌÍÎÏÙÚÛÜÝÑÇÞÝÆŒÐØ »);
$mot = substr_replace($mot,$maj,0,1);
$mot=utf8_encode($mot);
$mot=ucfirst($mot);
return $mot;
}
//Pour appeler la fonction:
echo utf8_maj_fr($variable);
//par exemple
$variable= »écologie »;
echo utf8_maj_fr($variable);
// renvoit Écologie
///////////////////////////////////////////////////////////////////////////////////////////
?>
Par défaut la fonction renvoit un chaîne encodée UTF8 , si vous voulez qu’a la sortie le mot soit encodé en ISO supprimez ou mettez en commentaire la ligne suivante:
$mot=utf8_encode($mot);
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 .
:: Fonction PHP ucfirst() en Français : mise en majuscule de la premiere lettre d’un mot d’un chaine de carractères encodée en ISO
php ///////////////////////////////////////////////////////////////////////////////////////////
function iso_maj_fr($mot)
{
$mot=trim($mot);$maj=$mot[0];$maj = strtr($maj, « äâàáåãéèëêòóôõöøìíîïùúûüýñçþÿæœðø », »ÄÂÀÁÅÃÉÈËÊÒÓÔÕÖØÌÍÎÏÙÚÛÜÝÑÇÞÝÆŒÐØ »);
$mot = substr_replace($mot,$maj,0,1);
$mot=ucfirst($mot);
return $mot;
}
Pour appeler la fonction:
echo iso_maj_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 « $mot=ucfirst($mot); »:
$mot=utf8_encode($mot);
///////////////////////////////////////////////////////////////////////////////////////////
?>
:: Fonction PHP strtoupper() en Français: mise en majuscule d’une chaîne carractères encodée en UTF-8 ou ISO
php ///////////////////////////////////////////////////////////////////////////////////////////
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 .
:::: Fonction PHP strtoupper() en Français: mise en majuscule d’une chaîne carractères encodée en ISO
php ///////////////////////////////////////////////////////////////////////////////////////////
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);
Jovilios 8 avril
Bon, puisque cette page est référencé lors de la recherche à propos de ce genre de problème…
php à une fonction qui s’appelle : mb_strtoupper( $str, ‘UTF-8′);
intéressant non ?
Jits 8 avril
Malheureusement elle fonctionne pas sur tous les serveurs . Mais j’aurai du préciser.
etienne 13 mai
Surtout que c’est tout le débat de cette page : cette fonction ne traite pas les accents !
Lire les titre c’est intéressant aussi non ?
Ced 3 février
Super JITS !
Tu me tire une fière chandelle du pied !!!
La fonction mb_strtoupper() ne fonctionne pas chez ces …… de chez Free ! Y’a tellement de limitations chez eux qu’il faut vraiment avoir recourt à des ruses de sioux pour obtenir ce qu’on souhaite !
Merci encore!
Céd
Jits 13 février
mb_strtoupper ne fonctionne pas non plus sur les serveurs mutualisés d’ OVH . D’où je crois l’utilité de cette ruse de sioux en effet, un peu bourrin , mais bon … Tout cas merci d’avoir posté ton retour d’expérience.
Ella 15 février
Salut Jits,
Pour les accents je sais que le site ne les gère pas, mais quand tu crée ta catégorie elle est toute difforme. Mais tu peux la réparer, après que tu la créer avec les accents, clic sur modifier ta catégorie et enlève les difformassions, remets tes accents que tu avais mis quand tu la créer et tu va obtenir une catégorie avec les accents impeccable.
C’est simple tu va voir…
Ella 19 février
Salut Jits,
Ça veut dire quoi ca stp…
(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)
Merci a bientôt !
Jits 19 février
Salut,
Cela ne concerne pas les serveurs de unblog.fr . C’est quand tu développes toi même une application en php.
Parfois tu rencontres des problèmes si tu encodes les caractères . Généralement les sites francophones utilisent une norme qui n’est pas internationale : la norme iso. Et si dans ton site tu traites des informations internationales ca peut poser problèmes .. Tu peux perdre l’intégrité de l’information . Donc les carracteres non reconnus peuvent rendre illisible une information encodé soit iso ou UTF8.
Dans les fonction au dessus , en mettant en commentaire , donc en indiquant au serveur qu’il ne doit pas exécuter la ligne tu peut retourner soit des caractères iso ou utf8 .
mutuelles 20 février
ouaou j ai du mal a comprendre
Ella 21 février
Salut Jits,
J’ai du mal a comprendre moi aussi, bah tu sais c’est pas grave.
Merci de ta réponse
Pat 23 octobre
Merci!
EtherKurios 4 juin
Bonjour !
Je fait une petite application en php/mysql
Mon formulaire est en UTF-8
Mes pages sont enregistrées en UTF-8 (sans BOM) sous Notepad++
J’ai voulu transformer les données d’un formulaire en MJUSCULE
Voici ma solution :
$FOURNISSEUR_nom = utf8_encode(strtoupper(utf8_decode(trim($_POST['FOURNISSEUR_nom']))));
elle fonctionne très bien lors d’un
echo ‘Le Fournisseur ‘ . $FOURNISSEUR_nom . ‘ a été crée !’;
Mais en allant dans ma base MySQL (encodée en utf8_general_ci) je vois des caractères très bizarre (idem lors de l’importation des tables en csv…
Où est le problème ???
P.S : je vais tester ton code pour voir si ça fait pareil
efoenix 2 mars
salut j’ai tester ta fonction et ca marche pas, l’océan
devient L’OCéAN
christian louboutins tumblr 23 janvier
Is there a distinction between a parapet and a rampart? If possible, no cut-and-pastes. Ive truly currently researched the actual explanations however I cant understand the distinction. Weve additionally looked up the photos, however We still cant locate any distinctions. Thus, remember to use your military acumen to provide me your individual human touch reply and not a cut-and-paste or a link to a description.
Herve Leger Dress 25 janvier
I am not sure whether this post is written by yourself? If so you’re wonderful blogger, really great job Thanks!
neesZewsWeeni 2 octobre
http://www.ez-days.com/
こういう現実的な女も大嫌いださらにいえば、出場者の皆さんに「出て良かった」と思ってもらえて、受信機を差し込むだけで簡単にワイヤレスマイクとなります。!
eleryslashy 3 octobre
I don’t focus on gender so much as the personality. In April the Forest Appraisal Committee (FAC) of the Ministry of Environment which will be a native quadcore.!
http://www.wtmoncler.com/
toto 23 décembre
carractères > caractères (avec un seul R)
orc 2925.11 12 octobre
Today, I went to the beach with my children. I found a sea shell and gave it to my 4 year old daughter and said « You can hear the ocean if you put this to your ear. » She put the shell to her ear and screamed. There was a hermit crab inside and it pinched her ear. She never wants to go back! LoL I know this is totally off topic but I had to tell someone!
http://google.by/url?q=https://www.yelp.com/biz/sabol-mallory-columbus
local dog trainer in Huntsville 13 octobre
I am typically to running a blog and i actually respect your content. The article has really peaks my interest. I am going to bookmark your website and maintain checking for new information.
https://google.pn/url?q=https://www.facebook.com/AlphaInstinctsDogTraining/
how to remove nail polish from grout 26 octobre
Hi there are using WordPress for your blog platform? I’m new to the blog world but I’m trying to get started and create my own. Do you require any html coding knowledge to make your own blog? Any help would be really appreciated!
http://google.dk/url?q=https://lasvegasinquirer.com/b30c6878betid96-night-and-day-stone-restoration-provides-natural-stone-and-ceramic-tile-sealing-se
Resultados Loterias Colombia Hoy Gana Con 22 décembre
Keep functioning ,fantastic job!
https://www.greenreport.it/ads/www/delivery/ck.php?ct=1&oaparams=2__bannerid=41__zoneid=3__cb=4229ad2336__oadest=https://tutierra.net