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 :

Supprimer balises [RegEx]


Sujet :

Langage PHP

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2011
    Messages
    32
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Novembre 2011
    Messages : 32
    Points : 20
    Points
    20
    Par défaut Supprimer balises
    Bonjour à toutes et à tous,

    Je suis devant un souci que je ne comprends pas, pourriez-vous me dire qu'est ce qu'il manque sur cette expression régulière, afin que je puisse supprimer les balises [caption] et [/caption], mais garder le contenu se trouvant entre les deux balises.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    #\[caption[^\]]*\](.*)\[/caption\]#m
    D'avance merci pour votre précieuse aide !

  2. #2
    Membre averti Avatar de demenvil
    Homme Profil pro
    Analyste développeur
    Inscrit en
    Avril 2009
    Messages
    195
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Analyste développeur
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2009
    Messages : 195
    Points : 389
    Points
    389
    Par défaut
    Salut pourquoi ne pas simplement utiliser un preg_replace ? ou str_replace ?

  3. #3
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Peut être plus simplement :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    #\[caption\](.*)\[/caption\]#
    Mais pour simplement supprimer, il est plus rapide de
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $array = array('[caption]', '[\caption]');
    echo str_replace($array, '', $string);

  4. #4
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2011
    Messages
    32
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Novembre 2011
    Messages : 32
    Points : 20
    Points
    20
    Par défaut
    Merci à vous deux, voilà le pourquoi j'aimerais utiliser une regex, car dans le [caption], il y a un id et autre données ce qui donne : [caption id="5555"],

    J'ai donc besoin de supprimer les balises complétement, mais sans enlever ce qui se trouve entre l'ouverture et la fermeture.

    J'ai essayé Sabotage ton expression régulière, mais cela ne fonctionne pas.

    Merci pour votre aide car là je suis dépassé et je tourne en rond

  5. #5
    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 : 54
    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 220
    Points
    91 220
    Billets dans le blog
    20
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    #\[caption[^\]]*\]([^\[]*)\[/caption\]#
    ?

  6. #6
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    D'ou l'interet de tout dire dés le début

    Tu peux être "large"
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    #\[caption.*\](.*)\[/caption\]#
    Ou très stricte :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    #\[caption id="[0-9]+"\](.*)\[/caption\]#

  7. #7
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2011
    Messages
    32
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Novembre 2011
    Messages : 32
    Points : 20
    Points
    20
    Par défaut
    Salut Bovino,

    Ton expression régulière me supprime l'entier des balises avec le contenu compris entre les deux balises.

    Voici un exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    [caption id="attachment_5463" align="aligncenter" width="430"]<img title="" class="size-full wp-image-5463" alt="Alstom" src="Alstom.jpg" height="117" width="430"> Alstom[/caption]
    Voilà ce que j'aimerais garder :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <img title="" class="size-full wp-image-5463" alt="Alstom" src="Alstom.jpg" height="117" width="430"> Alstom

  8. #8
    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 : 54
    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 220
    Points
    91 220
    Billets dans le blog
    20
    Par défaut
    Euh...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <?php
    $stInitial = '[caption id="attachment_5463" align="aligncenter" width="430"]&lt;img title="" class="size-full wp-image-5463" alt="Alstom" src="Alstom.jpg" height="117" width="430"> Alstom[/caption]';
    $stFinal = preg_replace('#\[caption[^\]]*\]([^\[]*)\[/caption\]#', '$1', $stInitial);
    echo '<pre>'.$stInitial.'</pre>';
    echo '<pre>'.$stFinal.'</pre>';

  9. #9
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2011
    Messages
    32
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Novembre 2011
    Messages : 32
    Points : 20
    Points
    20
    Par défaut
    Bon alors mystère pour moi quand je copie colle le code à Bovino c'est ok, mais le mien ne passe pas et pourtant c'est vérifié. Quoiqu'il en soit c'est OK et je vous remercie toutes et tous pour l'aide apportée !

    A+

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

Discussions similaires

  1. [RegEx] Supprimer balise commencant par et finissant par
    Par NissqR dans le forum Langage
    Réponses: 6
    Dernier message: 18/03/2010, 20h14
  2. [RegEx] Supprimer balise
    Par Fiquet dans le forum Langage
    Réponses: 21
    Dernier message: 23/02/2007, 12h16
  3. supprimer balise <img>
    Par alexmorel dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 22/10/2006, 10h55
  4. [MySQL] supprimer balises html
    Par nicerico dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 17/09/2006, 22h49
  5. supprimer balises html/css
    Par fr8ncky dans le forum Langage
    Réponses: 6
    Dernier message: 30/11/2005, 14h12

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