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 :

Remplacements de toutes les balises à une exception près [RegEx]


Sujet :

Langage PHP

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    83
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juillet 2007
    Messages : 83
    Par défaut Remplacements de toutes les balises à une exception près
    Bonjour,

    Sur mon forum, je récupére du texte avec des balises dedans.

    Ex:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ['B]Aujourd'hui['/B], ['SIZE="4"]['I]il fait beau.['/I]['/SIZE]
    J'aimerais pourvoir supprimer toutes les balises sauf la balise ['QUOTE] et ['/QUOTE].

    J'ai pensé à utiliser ereg_replace mais je ne sais pas comment faire pour trouver une "formule" qui irait pour toute les balises.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Ex: $message_sans_balises = ereg_replace('[TOUT TYPE DE CHIFFRES et LETTRES ENTRE]', '', $message);
    Pourriez-vous me dire comment devrais-je faire.

    Merci d'avance!

  2. #2
    Membre expérimenté
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    150
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Janvier 2006
    Messages : 150
    Par défaut
    Hello,

    En version bourrin ça te donne quelque chose comme ça :


  3. #3
    Membre expérimenté

    Profil pro
    Inscrit en
    Juin 2002
    Messages
    6 152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 6 152
    Par défaut
    Les fonctions ereg* ne sont pas assez évoluées pour ce genre d'opérations car il est nécessaire dans le cas présent d'exclure les balises quote par une assertion. C'est par contre possible avec les fonctions PCRE :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo $out = preg_replace("~\[(?!/?quote).*\]~iU", '', $in);
    (Celle-ci conserve les balises quote où il pourrait y avoir quelque chose entre elle et le ])

    Edit : on peut arriver au même résultat en utilisant une fonction de callback pour gérer le remplacement.

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    83
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juillet 2007
    Messages : 83
    Par défaut
    Peut-être bourrin mais sa marche impecable!!!

    Merci beaucoup, j'ai résolu mon problème.

  5. #5
    Membre expérimenté
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    150
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Janvier 2006
    Messages : 150
    Par défaut
    Ah oui j'avais oublié de prendre en compte la condition

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    83
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juillet 2007
    Messages : 83
    Par défaut
    Houps, j'avais pas vu le dernier code...

    Je viens de le tester mais il ne marche pas, aucune balise n'est enlevée.

    Il doit y avoir une petite erreur de codage.

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

Discussions similaires

  1. Réponses: 3
    Dernier message: 10/11/2011, 10h38
  2. [RegEx] Remplacer toutes les balises HTML sauf un certain type
    Par nicolas2603 dans le forum Langage
    Réponses: 4
    Dernier message: 22/09/2011, 09h06
  3. Réponses: 1
    Dernier message: 18/03/2011, 18h35
  4. Masquer toutes les balises d'une classe ?
    Par tintin72 dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 06/06/2009, 14h02
  5. appliquer une fonction à toutes les balises <a>
    Par trotters213 dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 30/10/2006, 16h49

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