IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

Mettre en majuscules les premières lettres accentuées [RegEx]


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    259
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 259
    Par défaut Mettre en majuscules les premières lettres accentuées
    Salut tout le monde.
    Alors, voila mon problème.
    Je veux mettre la première lettre de chaque mot en majuscule, par exemple, science-fiction devient Science-Fiction. Mais je voudrais aussi que si cette première lettre est accentuée, on enlève l'accent!
    J'ai donc mélangé deux codes (un trouvé sur le manuel Php et l'autre trouvé ici, mais je retrouve plus le topic ), et ça me donne ça au final :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    $txt = "éscarpée";
            $accent="áàâäåãéèêëíìîïóòôöõúùûüýçñžæœazertyuiopqsdfghjklmwxcvbn";
            $maj="AAAAAAEEEEIIIIOOOOOUUUUYCNZÆŒAZERTYUIOPQSDFGHJKLMWXCVBN";
            $txt = preg_replace('/\\b(<a href="file://\\w)/e&#39;" target="_blank">\\w)/e'</a>, 'strtr("$1",$accent,$maj)', strtolower(trim($txt)));
            echo $txt;
    Et donc, chez moi, en local, ça me donne Escarpée... normal. Sauf que quand je le teste chez ifrance, ça me donne éScarpéE !!! La lettre après l'accent (ou la cédille...) se met en majuscule, et l'accent reste en première position!!!!
    Et je comprends pas pourquoi...
    Si vous pouvez m'éclairer (soit dit en passant, je ne comprends pas les caractères de mon expression régulière, veuillez m'en excuser )

  2. #2
    Membre Expert
    Avatar de Nesmontou
    Homme Profil pro
    Architecte logiciel
    Inscrit en
    Septembre 2004
    Messages
    1 612
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Architecte logiciel
    Secteur : Finance

    Informations forums :
    Inscription : Septembre 2004
    Messages : 1 612
    Par défaut
    Salut, tu peux jeter un oeil à la fonction ucwords() : http://fr.php.net/manual/fr/function.ucwords.php

    Ca peut peut-être t'aider

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    259
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 259
    Par défaut
    Euh... Es tu allé sur le lien que j'ai mis dans mon message? Elle ramène justement à la fonction ucwords...
    Et si tu essayes cette fonction, tu verras que la première lettre est certes en majuscule, mais qu'elle a gardé l'accent, ce que je ne veux pas. Et en plus, si tu mets un mot composé, ben le deuxième mot n'aura pas de majuscule.
    Donc ça ne suffit pas, et c'est pour ça que j'ai été obligé de faire ce bout de code.

  4. #4
    Membre éclairé
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    259
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 259
    Par défaut
    J'ai effectué quelques tests depuis, et je tiens à préciser que sur ifrance, la fonction ucwords ne renvoie même pas la première lettre en majuscule si celle-ci est accentuée.

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2006
    Messages
    89
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Février 2006
    Messages : 89
    Par défaut
    et phpinfo() de ton server sur ifrance sa te sors quoi?

    si jamais tu arrive pas a faire functionner c'est functin PHP .. tu peu toujours te coder la meme function avec des strpos et des preg_replace dans une boucle

  6. #6
    Membre éclairé
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    259
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 259
    Par défaut
    Alors, oui, j'ai bien fait un phpinfo()... Mais je dois regarder quoi?
    Quant à faire une boucle... euh... si y a moyen d'éviter...

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Mettre en majuscule les 1eres lettres d'un JTextField
    Par coolanso dans le forum Composants
    Réponses: 4
    Dernier message: 05/01/2012, 17h22
  2. Mettre en majuscule les premieres lettres d'un prenom compose
    Par rimbaut dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 14/04/2010, 13h55
  3. Réponses: 2
    Dernier message: 27/08/2009, 17h10
  4. Mettre en majuscule la première lettre d'un mot
    Par bobosh dans le forum Requêtes et SQL.
    Réponses: 6
    Dernier message: 05/09/2008, 07h55
  5. Mettre en majuscule la première lettre du nom d'une nouvelle feuille excel
    Par titemireille dans le forum Macros et VBA Excel
    Réponses: 10
    Dernier message: 16/06/2008, 22h31

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo