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

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  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
    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.

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

Discussions similaires

  1. Réponses: 3
    Dernier message: 10/11/2011, 11h38
  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, 10h06
  3. Réponses: 1
    Dernier message: 18/03/2011, 19h35
  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, 15h02
  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, 17h49

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