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 :

Extraire toutes les cellules d'une page html


Sujet :

Langage PHP

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2002
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2002
    Messages : 17
    Points : 16
    Points
    16
    Par défaut Extraire toutes les cellules d'une page html
    Bonjour,

    Je cherche a faire une regex qui pourrait extraire le contenu de toutes les cellules (balises td ou th) d'une page html. En fait la page peut avoir des cellules qui contiennent elles mêmes des tableaux (et donc des cellules aussi).

    Ex de code Html :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
     
    .......
     
    <table border="0">
    <tr>
    <td>colonne 1</td>
    <td>
     
    <table border="0">
    <tr>
    <td>toto</td>
    <td>titi</td>
    </tr>
    </table>
    Coucou
     
    </td>
    </tr>
    </table>
    Je cherche une expression qui avec la fonction preg_match_all (par exemple) me sortirait dans un tableau les 4 chaines :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
     
    chaine 1 :
    colonne 1
     
    chaine 2 :
    <table border="0">
    <tr>
    <td>toto</td>
    <td>titi</td>
    </tr>
    </table>
    Coucou
     
    chaine 3 :
    toto
     
    chaine 4 :
    titi
    Autrement dit le contenu de toutes les cellules y compris celles qui contiennent aussi d'autres cellules.

    J'ai essayé l'expression :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    /<td[^>]*>)(.*?)(<\/td>/si
    Mais ça ne marche pas s'il y a un tableau dans la cellule, car il me retourne le premier </td> trouvé mais qui ne correspond pas à la fin du <td> rencontré au début.

    Je pense que l'expression pourrait s'écrire en français comme :

    Une chaine commençant par une balise td,
    suivi par des caractères et éventuellement du couple <table></table> qui comprendrait un certain nombre de caratères au milieu et serait répété 0 fois ou plus
    et qui finirait par </td>

    Le fait d'avoir le(s) couple(s) <table></table> assurerait de trouver la bonne fin de cellule je pense, mais comment écrire cela ??

  2. #2
    Membre chevronné
    Avatar de gwinyam
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2006
    Messages
    1 162
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mai 2006
    Messages : 1 162
    Points : 2 015
    Points
    2 015
    Par défaut
    Oui et non. Parce que tu considères que tu ne gérerais qu'un seul niveau de profondeur. C'est pas optimal si tu ne sais pas quelle profondeur tu as à traiter.

    Essaie plutôt avec une fonction PHP récursive.
    Comparez la qualité et le prix du matériel de bricolage ou de maison avant d'acheter : MatosMaison
    Le bouton ne masse pas les pieds, mais ça aide la communauté.

Discussions similaires

  1. RegEx pour extraire les liens d'une page html
    Par herch dans le forum API standards et tierces
    Réponses: 7
    Dernier message: 13/05/2009, 17h26
  2. Connaitre tout les éléments d'une page html
    Par flo_k dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 14/04/2007, 14h18
  3. réinitialiser les liens d'une page html
    Par sisco dans le forum Général JavaScript
    Réponses: 7
    Dernier message: 05/11/2004, 16h03
  4. [VBA-E] supprimer le contenu de toutes les cellules d'une feuille
    Par BipBip2 dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 13/08/2004, 15h13

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