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 un bloc d'un fichier texte [RegEx]


Sujet :

Langage PHP

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    33
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2008
    Messages : 33
    Points : 29
    Points
    29
    Par défaut Supprimer un bloc d'un fichier texte
    Bonjour,

    je dispose d'un fichier texte qui contient notamment des données de ce type :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    <div class="evenement" id="id1" >
    <p>...</p>
    </div>
    Je souhaiterai via une regex pouvoir récuperer le boc qui porte l'id = id1 et son contenu et le supprimer du fichier texte.

    Le problème est que je ne sais pas trop comment écrire cette regex

    Un coup de pouce serait bienvenu.

  2. #2
    Membre habitué Avatar de we.are.the.storm
    Profil pro
    Inscrit en
    Février 2009
    Messages
    115
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 115
    Points : 139
    Points
    139
    Par défaut
    Essaye avec ce pattern (a entourer de ' si tu ne veux pas avoir à echaper les " avec un backslash) :

  3. #3
    Rédacteur/Modérateur

    Avatar de Antoun
    Homme Profil pro
    Architecte décisionnel
    Inscrit en
    Octobre 2006
    Messages
    6 281
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Architecte décisionnel
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2006
    Messages : 6 281
    Points : 11 737
    Points
    11 737
    Par défaut
    Ce que tu appelles "le bloc" n'est pas très clair... tu veux supprimer simplement la mention id = "6", ou bien tout ce qui est entre <div id = "6"> et </div> ?
    Antoun
    Expert Essbase, BO, SQL

    La bible d'Essbase, 2ème édition

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

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Août 2006
    Messages : 2 760
    Points : 3 545
    Points
    3 545
    Par défaut
    Si c'est comme je le pense tout le bloc, il faut d'abord savoir s'il y a possibilité d'avoir des DIV imbriquées à l'intérieur. Ce la va changer la complexité du tout au tout...
    • Avant de poser une question, n'hésitez pas à chercher dans la FAQ et les forums
    • Merci d'utiliser les balises de code (# dans l'éditeur)
    • N'oubliez pas de vous servir des boutons , et

    S.N.A.F.U

  5. #5
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    33
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2008
    Messages : 33
    Points : 29
    Points
    29
    Par défaut
    merci pour vos réponses.

    C'est le div (qui porte un id) et son contenu (y compris d'autres div) que je voudrai supprimer.

    Pas évident

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

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Août 2006
    Messages : 2 760
    Points : 3 545
    Points
    3 545
    Par défaut
    Un truc dans le genre ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <?php
     
    $myString = 'bla<div class="evenement" id="id1"><p>machin</p><div>foobar</div><p>Truc</p></div><div id="10"><p>jsdhkf</p></div>bli';
    $myPattern = '#(<div class="evenement" id="id1">|<div>)(([^<]|<(?!/?div>)|(?R))+)</div>#';
    print preg_replace($myPattern, '', $myString);
    • Avant de poser une question, n'hésitez pas à chercher dans la FAQ et les forums
    • Merci d'utiliser les balises de code (# dans l'éditeur)
    • N'oubliez pas de vous servir des boutons , et

    S.N.A.F.U

  7. #7
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    33
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2008
    Messages : 33
    Points : 29
    Points
    29
    Par défaut
    Citation Envoyé par jml94 Voir le message
    Un truc dans le genre ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <?php
     
    $myString = 'bla<div class="evenement" id="id1"><p>machin</p><div>foobar</div><p>Truc</p></div><div id="10"><p>jsdhkf</p></div>bli';
    $myPattern = '#(<div class="evenement" id="id1">|<div>)(([^<]|<(?!/?div>)|(?R))+)</div>#';
    print preg_replace($myPattern, '', $myString);
    Oui, merci je vais creuser à partir de la

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

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Août 2006
    Messages : 2 760
    Points : 3 545
    Points
    3 545
    Par défaut
    Tiens nous au courant du déroulement de l'opération
    • Avant de poser une question, n'hésitez pas à chercher dans la FAQ et les forums
    • Merci d'utiliser les balises de code (# dans l'éditeur)
    • N'oubliez pas de vous servir des boutons , et

    S.N.A.F.U

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 18/05/2006, 13h38
  2. Supprimer certaines lignes d'un fichier texte
    Par kek_net dans le forum Langage
    Réponses: 2
    Dernier message: 10/04/2006, 11h21
  3. Supprimer une ligne dans un fichier texte
    Par @yoyo dans le forum Entrée/Sortie
    Réponses: 11
    Dernier message: 28/03/2006, 14h19
  4. Supprime une ligne dans un fichier texte
    Par dev7 dans le forum Linux
    Réponses: 4
    Dernier message: 28/03/2006, 01h33
  5. Supprimer une ligne dans un fichier text
    Par philippe13 dans le forum Entrée/Sortie
    Réponses: 4
    Dernier message: 14/03/2006, 16h43

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