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 :

ereg_replace : Conversion minuscule majuscule [RegEx]


Sujet :

Langage PHP

  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    572
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Haute Vienne (Limousin)

    Informations forums :
    Inscription : Juin 2005
    Messages : 572
    Points : 716
    Points
    716
    Par défaut ereg_replace : Conversion minuscule majuscule
    Bonjour tout le monde,

    Je suis face à un petit dilemne : j'aimerais transformer une chaîne de façon à supprimer le caractère "_" et à mettre en majuscule le caractère qui le suit.

    J'ai donc procédé ainsi :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    preg_replace("/_(.)/", strtoupper("$1"), strtolower($chaine));
    Ce qui m'amène un résultat assez étrange, puisque pour la chaine CHAINE_TEST, j'obtiens le résultat chainetest.

    Je comprend le pourquoi du manque de majuscule (la fonction strtoupper est exécutée avant la fonction preg_replace), mais je ne comprend pas dans ce cas pourquoi j'obtiens malgré tout le caractère suivant "_" dans mon résultat.

    J'aimerais arriver à mon résultat directement via l'expression régulière, et éviter de m'embêter avec un split par exemple.
    Si quelqu'un a une idée pour me dépanner, je suis preneur.

  2. #2
    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
    Il te manque juste l'option 'e', je te renvoie à la doc des fonctions PCRE

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    preg_replace("/_(.)/e", 'strtoupper("$1")', strtolower($str));

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    572
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Haute Vienne (Limousin)

    Informations forums :
    Inscription : Juin 2005
    Messages : 572
    Points : 716
    Points
    716
    Par défaut
    Merci bien ça fonctionne.

    J'avais lu la doc de la fonction auparavant mais je n'avais pas compris l'explication sur l'utilisation de l'option "e".

  4. #4
    Membre habitué
    Homme Profil pro
    Lycéen
    Inscrit en
    Décembre 2008
    Messages
    106
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Décembre 2008
    Messages : 106
    Points : 152
    Points
    152
    Par défaut
    L'option e permet d'appliquer des fonctions PHP dans des regex. C'est un gros risque de sécurité puisqu'elle permet une injection de code PHP.

    Que parses-tu exactement avec ton preg_match ?

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

Discussions similaires

  1. Conversion en Majuscule/Minuscule/Nompropre
    Par mnarchi dans le forum Contribuez
    Réponses: 4
    Dernier message: 27/10/2010, 10h21
  2. Conversion Minuscule Majuscule
    Par Stargate SG1 dans le forum Access
    Réponses: 6
    Dernier message: 02/03/2007, 17h12
  3. interface graphique et minuscule/majuscule
    Par Matil2 dans le forum C
    Réponses: 2
    Dernier message: 09/11/2006, 19h14
  4. [débutant] conversion minuscule majuscule
    Par Anthony17 dans le forum Access
    Réponses: 6
    Dernier message: 06/07/2006, 16h00
  5. Rcherche minuscule/majuscule dans chaîne
    Par Nargel33 dans le forum Oracle
    Réponses: 4
    Dernier message: 30/11/2005, 14h45

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