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 :

récupérer un élément de la chaine et l'intégrer dans une autre [RegEx]


Sujet :

Langage PHP

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    141
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 141
    Points : 92
    Points
    92
    Par défaut récupérer un élément de la chaine et l'intégrer dans une autre
    Bonjour,

    je cherche à faire la chose suivante :

    j'ai un textarea avec des codes produits saisis à l'intérieur sous cette forme
    "mon produit [p2015] est génial" ou "super produit [p1214]"

    je veux récupérer le code numérique de [p2015] ou [p1214]
    Le principe est toujours le même [ + p + ref produit + ]

    Ensuite je veux remplacer ce code numérique par une image
    "mon produit [p2015] est génial" deviendrait "mon produit <img src="2015.jpg" ... /> est génial"

    N'étant pas expert en regex j'ai creusé avec preg_replace et mis ce pattern en place
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $chaine = preg_replace('/\[p([0-9])\]/', '<img src="$1.jpg" />', $monTexte);
    Le soucis c'est que dans mon cas je veux remplacer complètement [p2015] par <img src="2015.jpg" /> et non 2015 seulement.

    Je ne sais pas trop comment m'y prendre
    Il est même possible que je n'utilise pas la bonne fonction !?!?

    Merci de m'éclairer

  2. #2
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Points : 91 418
    Points
    91 418
    Billets dans le blog
    20
    Par défaut
    Il faut un quantifieur pour les chiffres.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $chaine = preg_replace('/\[p([0-9]+)\]/', '<img src="$1.jpg" />', $monTexte);
    Pas de question technique par MP !
    Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
    Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    141
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 141
    Points : 92
    Points
    92
    Par défaut
    effectivement je comprends mieux ce qui n'allait pas, cependant la fonction était la bonne ça me rassure !
    pour [p1] ça fonctionnait mais pas [p5000]

    Merci beaucoup Bovino

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

Discussions similaires

  1. Réponses: 5
    Dernier message: 01/08/2010, 09h07
  2. Réponses: 1
    Dernier message: 27/10/2009, 21h48
  3. [PHP 5.3] Chaine de caractères contenue dans une autre
    Par filoulebauju dans le forum Langage
    Réponses: 3
    Dernier message: 04/09/2009, 09h29
  4. Réponses: 2
    Dernier message: 15/07/2008, 09h26
  5. Réponses: 2
    Dernier message: 16/05/2008, 16h18

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