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 majuscule un caractère précis


Sujet :

Langage PHP

  1. #1
    Membre averti Avatar de mdr_cedrick
    Profil pro
    Développeur multimédia
    Inscrit en
    Janvier 2008
    Messages
    374
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Développeur multimédia

    Informations forums :
    Inscription : Janvier 2008
    Messages : 374
    Points : 336
    Points
    336
    Par défaut Mettre en majuscule un caractère précis
    Bonjour à tous

    je récupère de ma bdd un nom de ville
    j'aimerais mettre chaque 1ere lettre en majuscule, j'utilise donc ucwords
    or j'aimerais également que cela marche sur les noms composés avec un trait d'union
    ex : levallois-perret => Levallois-Perret
    je suppose qu'il faudrait partir du côté des expressions régulières mais à ce niveau je ne suis pas très calé.

    Je pensais aussi faire une boucle et analyser le texte mais je ne pense pas que ce soit la meilleure solution.

    Si vous avez une idée je suis preneur

    merci

  2. #2
    Membre averti Avatar de mdr_cedrick
    Profil pro
    Développeur multimédia
    Inscrit en
    Janvier 2008
    Messages
    374
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Développeur multimédia

    Informations forums :
    Inscription : Janvier 2008
    Messages : 374
    Points : 336
    Points
    336
    Par défaut
    En faite un collègue vient de trouver une idée différente de ce que je pensais
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $nomVille	=	str_replace('-', ' - ', $o->ville);
    $nomVille	=	ucwords($nomVille);
    $nomVille	=	str_replace(' - ', '-', $nomVille);

  3. #3
    Membre émérite

    Homme Profil pro
    Expert PHP
    Inscrit en
    Novembre 2004
    Messages
    2 127
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Expert PHP
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Novembre 2004
    Messages : 2 127
    Points : 2 557
    Points
    2 557
    Par défaut
    Sinon, pour éviter de faire des actions inutile : regex power :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $texte = "levallois-perret ";
    echo preg_replace('/(^|-|_)([a-z])/e', "'\\1'.strtoupper('\\2')", $texte);

  4. #4
    Membre expert
    Avatar de trotters213
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    2 571
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Gard (Languedoc Roussillon)

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 571
    Points : 3 145
    Points
    3 145
    Par défaut
    Sinon si tu vas sur la doc de php.net il y a des gars qui ont déjà rencontré le problème : http://fr2.php.net/manual/fr/function.ucwords.php#86871

  5. #5
    Membre expert
    Avatar de s.n.a.f.u
    Homme Profil pro
    Développeur Web
    Inscrit en
    Août 2006
    Messages
    2 760
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Août 2006
    Messages : 2 760
    Points : 3 545
    Points
    3 545
    Par défaut
    Citation Envoyé par mdr_cedrick Voir le message
    En faite un collègue vient de trouver une idée différente de ce que je pensais
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $nomVille	=	str_replace('-', ' - ', $o->ville);
    $nomVille	=	ucwords($nomVille);
    $nomVille	=	str_replace(' - ', '-', $nomVille);
    C'est pas forcément aussi classe à première vue qu'une regex bien compliquée que seule l'élite phpiste comprendrait, mais ça à l'avantage de répondre simplement à la question, surtout quant il y a plusieurs tirets dans le nom.


  6. #6
    Membre émérite

    Homme Profil pro
    Expert PHP
    Inscrit en
    Novembre 2004
    Messages
    2 127
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Expert PHP
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Novembre 2004
    Messages : 2 127
    Points : 2 557
    Points
    2 557
    Par défaut
    Citation Envoyé par jml94 Voir le message
    Salut Maxoo,

    Il n'y aurait pas une petite coquille ?
    Bah non, teste et tu verras

    Citation Envoyé par jml94 Voir le message
    Je ne comprends pas ce groupe :
    Bah je cherche la lettre qui est précédé de : "le début, un tiret ou un underscore (pour montrer qu'on peut faire pleins de choses)

    Et voila !! Tada !!

  7. #7
    Membre averti Avatar de mdr_cedrick
    Profil pro
    Développeur multimédia
    Inscrit en
    Janvier 2008
    Messages
    374
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Développeur multimédia

    Informations forums :
    Inscription : Janvier 2008
    Messages : 374
    Points : 336
    Points
    336
    Par défaut
    merci messieurs
    effectivement c'est toujours mieux que mes 3 lignes du début

  8. #8
    Membre expert
    Avatar de s.n.a.f.u
    Homme Profil pro
    Développeur Web
    Inscrit en
    Août 2006
    Messages
    2 760
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Août 2006
    Messages : 2 760
    Points : 3 545
    Points
    3 545
    Par défaut
    Citation Envoyé par Maxoo Voir le message
    Bah non, teste et tu verras
    Justement, j'avais des messages d'erreur, mais pas pour la raison que je croyais.
    Je me suis permis de corriger la partie évaluée.
    Citation Envoyé par Maxoo Voir le message
    Bah je cherche la lettre qui est précédé de : "le début, un tiret ou un underscore (pour montrer qu'on peut faire pleins de choses)

    Et voila !! Tada !!
    C'est classe

  9. #9
    Membre émérite

    Homme Profil pro
    Expert PHP
    Inscrit en
    Novembre 2004
    Messages
    2 127
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Expert PHP
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Novembre 2004
    Messages : 2 127
    Points : 2 557
    Points
    2 557
    Par défaut
    Citation Envoyé par jml94 Voir le message
    Je me suis permis de corriger la partie évaluée.
    Rah, les modos
    Et donc il vaut mieux écrire \\1 que \$1 ?

  10. #10
    Membre expert
    Avatar de s.n.a.f.u
    Homme Profil pro
    Développeur Web
    Inscrit en
    Août 2006
    Messages
    2 760
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Août 2006
    Messages : 2 760
    Points : 3 545
    Points
    3 545
    Par défaut
    Citation Envoyé par Maxoo Voir le message
    Rah, les modos
    Et donc il vaut mieux écrire \\1 que \$1 ?
    Disons que \$1 a une signification un peu floue, mais tout passe :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    $myString = "levallois-perret-mes-genoux";
    echo preg_replace('/(^|-|_)([a-z])/e', "'$1'.strtoupper('$2')", $myString);
    echo preg_replace('/(^|-|_)([a-z])/e', "'\\1'.strtoupper('\\2')", $myString);
    echo preg_replace('/(^|-|_)([a-z])/e', "'\$1'.strtoupper('\$2')", $myString);

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

Discussions similaires

  1. [XL-2007] Mettre des chaines de caractères en majuscules
    Par jords dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 04/07/2012, 09h11
  2. [C#] mettre en majuscule le texte d'un controle textbox
    Par grome dans le forum Windows Forms
    Réponses: 4
    Dernier message: 09/10/2011, 00h12
  3. mettre un nombre de caractéres précis dans le masque d'un tfilelist
    Par ElCyril dans le forum Développement de jobs
    Réponses: 1
    Dernier message: 18/05/2011, 12h49
  4. Mettre en majuscule certain caractère d'une chaîne
    Par saket2114 dans le forum Langage
    Réponses: 4
    Dernier message: 26/10/2009, 15h38
  5. [Oracle] Mettre en MAJ les caractères spéciaux
    Par Egware dans le forum Langage SQL
    Réponses: 1
    Dernier message: 10/03/2006, 18h18

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