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 :

Remplacement de BBcode


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 3
    Par défaut Remplacement de BBcode
    Bonjour,
    Je ne sais pas si je poste au bon endroit, mais j'ai un petit problème sur une règle régulière :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $leTexte = preg_replace('#\[imgD\]([\s\S]*?(.jpg|.gif|.png))\[\/imgD\]#isU', '<div class="bbcodeImgD"><img src="$1" alt="Image" /></div>', $leTexte);
    Vous l'aurez compris c'est pour ajouter une image grâce à du bbcode.

    Le problème étant que j'arrive à ajouter 1 images sans problème, mais si j'en rajoute une seconde, cela ne fonctionne plus.

    Le problème vient donc de ([\s\S]*?(.pdf|.gif|.png)).... je pense.

    [imgD]http://www.google.com/intl/en_ALL/images/logo.gif[/imgD]
    [imgD]http://www.google.com/intl/en_ALL/images/logo.gif[/imgD]

    code source :
    <div class="bbcodeImgD"><img src="http://www.google.com/intl/en_ALL/images/logo.gif[/imgD]%3Cbr/%3E[imgD]http://www.google.com/intl/en_ALL/images/logo.gif" alt="Image"></div>


    Merci d'avance pour votre aide

  2. #2
    Membre Expert Avatar de Madfrix
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    2 326
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 326
    Par défaut
    J'aurais fait quelque chose comme toi notamment pour le isU. Mais après vérification de mon côté, cela marche avec is sans le U aussi bizarre que cela puisse paraitre (pour moi du moins)

  3. #3
    Candidat au Club
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 3
    Par défaut
    Je te remercie beaucoup pour ta réponse, effectivement sans le U ça fonctionne.
    Je ne vais pas chercher plus loin.

    Je te remercie encore et bon match (Clermont-Ferrand vs Perpignan...)

  4. #4
    Membre éclairé Avatar de Jihnn
    Inscrit en
    Décembre 2005
    Messages
    330
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 330
    Par défaut
    Après tests, le problème semble venir du point d'interrogation après le *... à quoi sert ce point d'interrogation ?

  5. #5
    Membre émérite
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    625
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 625
    Par défaut
    Hello,

    Le ? rend la sélection ungreedy, comme le fait l'option U. Si l'option U est utilisée en doublon, peut-être que ça en inverse l'effet.

  6. #6
    Membre Expert Avatar de Madfrix
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    2 326
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 326
    Par défaut
    Bien vu sans le ? qui sert à rien c'est vrai et avec le U, on obtient le résultat escompté

  7. #7
    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 : 51
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Août 2006
    Messages : 2 760
    Par défaut
    Citation Envoyé par Madfrix Voir le message
    Bien vu sans le ? qui sert à rien c'est vrai et avec le U, on obtient le résultat escompté
    L'option U inverse le comportement greedy des quantificateurs (*, +, etc...)

    Elle inverse également le comportement du limiteur ? qui rend habituellement les quantificateurs "ungreedy".

    Franchement, je déteste cette option U qui met le bazar dans les regex.

    Soit on utilise les ? dans le pattern, soit on utilise l'option U. Utiliser les deux est à mes yeux inutile et source d'embrouilles.

Discussions similaires

  1. Remplacer un bouton submit (bbcode) par une jolie icone
    Par Bruno.C dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 25/01/2008, 13h24
  2. [RegEx] Remplacement BBcode par HTML
    Par J0r_x dans le forum Langage
    Réponses: 4
    Dernier message: 27/11/2007, 14h47
  3. [RegEx] regex pour remplacer bbcode et img
    Par gwena54 dans le forum Langage
    Réponses: 6
    Dernier message: 16/08/2007, 14h42
  4. Réponses: 9
    Dernier message: 23/07/2006, 20h18

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