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 :

identifier fin div


Sujet :

Langage PHP

  1. #1
    Membre régulier
    Homme Profil pro
    Webmaster
    Inscrit en
    Avril 2006
    Messages
    264
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Avril 2006
    Messages : 264
    Points : 105
    Points
    105
    Par défaut identifier fin div
    bonjour, je veux faire une regex pour extraire le contenu d'un div mais qui contient lui meme un div !

    exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <div id='bloc'>Bonjour, patati patata <div id='contenu'>exemple de code bidon</div> aurevoir, merci</div>
    preg_match_all('/<div id="bloc">(.*?)<\/div>/s', $texte, $tab);

    mais cette regex me récupère tout jusqu'au premier /div qui est celui de l'id 'contenu' comment faire pour dire jusqu'à la fermeture du div propre à l'identifiant?

    merci

  2. #2
    Membre expert Avatar de Fench
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Mai 2002
    Messages
    2 353
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Groenland

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Mai 2002
    Messages : 2 353
    Points : 3 390
    Points
    3 390
    Par défaut
    Bonjour,

    Ton div contient qu'un autre div ou plusieurs autres div ?

    Sinon dans le masque tu ajoutes un div en plus entre deux séquences (.*?), non ?

  3. #3
    Membre régulier
    Homme Profil pro
    Webmaster
    Inscrit en
    Avril 2006
    Messages
    264
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Avril 2006
    Messages : 264
    Points : 105
    Points
    105
    Par défaut
    un seul autre div et il peut aussi y avoir des balises span
    je ne comprends pas quand tu dis de rajouter le div dans mon (.*) car si je met çà cela ne trouvera rien?

  4. #4
    Membre expert Avatar de Fench
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Mai 2002
    Messages
    2 353
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Groenland

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Mai 2002
    Messages : 2 353
    Points : 3 390
    Points
    3 390
    Par défaut
    Je remonte le sujet car je sais qu'il y a des experts dans les regexp

    Je pense que c facile, moi (en étant tjs à ma première page des regexp) j'aurais fait un truc du genre:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    preg_match_all('/<div id="bloc">(.*?)\/<div\(.*?)/div>/', $texte, $tab);
    mais celà dit je suis pas l'expert dans le domaine et j'attendrais la réponse pour en apprendre plus

  5. #5
    Membre actif Avatar de John Blobsmith
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    198
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 198
    Points : 223
    Points
    223
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    $texte = '<div id="bloc">Bonjour, patati patata <div id="contenu">exemple de code bidon</div> aurevoir, merci</div>';
    $tab = array();
    preg_match_all('#<div id="bloc">(.*)</div>#si', $texte, $tab);
    var_dump($tab[1][0]);

  6. #6
    Membre expert Avatar de Fench
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Mai 2002
    Messages
    2 353
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Groenland

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Mai 2002
    Messages : 2 353
    Points : 3 390
    Points
    3 390
    Par défaut
    Comme je l'ai dit je suis en cours d'apprentissage pourquoi les # par rapport au \ mais bon je suis mauvais car j'ai pas cherché autre que les post du forum , prut pas tout faire, ya marre Bonne nuit à tous

  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 : 50
    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
    Citation Envoyé par John Blobsmith Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    $texte = '<div id="bloc">Bonjour, patati patata <div id="contenu">exemple de code bidon</div> aurevoir, merci</div>';
    $tab = array();
    preg_match_all('#<div id="bloc">(.*)</div>#si', $texte, $tab);
    var_dump($tab[1][0]);
    Pas vraiment, la preuve :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    <?php
     
    $str = '<div id="bloc">Bonjour, patati patata <div id="contenu">exemple de code bidon</div> aurevoir, merci</div><div>à ne pas prendre</div>';
     
    preg_match_all('#<div id="bloc">(.*)</div>#si', $str, $m);
     
    var_dump($m);
    J'utiliserais, au choix :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $reg = '#<div[^>]*> ( .*? (?:</div>)? .*? ) </div>#six';
     
    $reg = '#<div[^>]*> ((?!</div).)* (?:</div>)? ((?!</div).)* </div>#six';

Discussions similaires

  1. Identifier la fin d'un calcul.
    Par Domino40 dans le forum VB.NET
    Réponses: 2
    Dernier message: 24/10/2010, 16h18
  2. Identifier la fin d'un process
    Par Domino40 dans le forum VB.NET
    Réponses: 2
    Dernier message: 22/10/2010, 15h46
  3. calcul fin défilement d'un div
    Par calitom dans le forum Général JavaScript
    Réponses: 0
    Dernier message: 17/12/2008, 16h34
  4. [POO] redimensionner div + détecter fin redimensionnement
    Par franfr57 dans le forum Général JavaScript
    Réponses: 17
    Dernier message: 03/11/2008, 17h33
  5. récupérer l'identifiant de mes div
    Par loka dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 14/08/2008, 16h57

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