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 :

Parsing et extraction de tableau html vers tableaux php


Sujet :

Langage PHP

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juin 2012
    Messages
    41
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2012
    Messages : 41
    Points : 26
    Points
    26
    Par défaut Parsing et extraction de tableau html vers tableaux php
    Bonjour, je souhaite extraire un tableau html en plusieurs tableaux php (1 par colonne).
    Par exemple, à partir de ce tableau html :
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    <TABLE class="DISCOVERY"><TR><TH><center><B>State</TH><TH><B>Host</TH><TH><B>MAC Addresses</TH><TH><B>Vendor</TH><TH><B>Hostname</TH><TH><B>Change</TH></TR>
    <TR id="UP"><TD><center>UP</TD><TD>42.158.184.1</TD><TD>00:0D:42:07:AE:00</TD><TD>Cisco</TD><TD>user42.toto.fr</TD><TD>&nbsp;</TD></TR>
    <TR id="UP"><TD><center>UP</TD><TD>42.158.184.2</TD><TD>00:A7:56:BA:04:64</TD><TD>VMware</TD><TD>user4.toto.fr</TD><TD>&nbsp;</TD></TR>
    <TR id="UP"><TD><center>UP</TD><TD>42.158.184.3</TD><TD>00:D8:29:65:58:CC</TD><TD>VMware</TD><TD>user42.toto.fr</TD><TD>&nbsp;</TD></TR>
    <TR id="UP"><TD><center>UP</TD><TD>42.158.184.4</TD><TD>00:0C:3C:C5:11:F4</TD><TD>VMware</TD><TD>user14.toto.fr</TD><TD>&nbsp;</TD></TR>
    <TR id="UP"><TD><center>UP</TD><TD>42.158.184.5</TD><TD>00:0C:4A:50:15:5E</TD><TD>VMware</TD><TD>user21.toto.fr</TD><TD>&nbsp;</TD></TR>
    <TR id="DOWN"><TD><center>DOWN</TD><TD>42.158.184.7</TD><TD>D4:BE:C7:7B:8F:5E</TD><TD>&nbsp;</TD><TD>user42.toto.fr</TD><TD>&nbsp;</TD></TR>
    <TR id="UP"><TD><center>UP</TD><TD>42.158.184.9</TD><TD>00:50:1F:BA:6B:80</TD><TD>VMware</TD><TD>user12.toto.fr</TD><TD>&nbsp;</TD></TR>
    <TR id="UP"><TD><center>UP</TD><TD>42.158.184.10</TD><TD>90:B1:1C:42:F9:93</TD><TD>&nbsp;</TD><TD>user4.toto.fr</TD><TD>11:31:25</TD></TR>
    <TR id="DOWN"><TD><center>DOWN</TD><TD>42.158.184.11</TD><TD>3C:07:A8:7C:BB:4C</TD><TD>&nbsp;</TD><TD>user42.toto.fr</TD><TD>&nbsp;</TD></TR>
    [...]

    J'aimerai générer un tableau par colonne :
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    $State = array("UP","UP","UP","UP","UP","DOWN","UP","UP","DOWN");
    $Host = array("42.158.184.1","42.158.184.2","42.158.184.3","42.158.184.4","42.158.184.5","42.158.184.7","42.158.184.9","42.158.184.10","42.158.184.11");
    $MAC_Addresses = array("00:0D:42:07:AE:00","00:A7:56:BA:04:64","00:D8:29:65:58:CC","00:0C:3C:C5:11:F4","00:0C:4A:50:15:5E","D4:BE:C7:7B:8F:5E","00:50:1F:BA:6B:80","90:B1:1C:42:F9:93","3C:07:A8:7C:BB:4C");
    $Vendor = array("Cisco","VMware","VMware","VMware","VMware","","VMware","","")
    $Hostname = array("user42.toto.fr","user4.toto.fr","user42.toto.fr","user14.toto.fr","user21.toto.fr","user42.toto.fr","user12.toto.fr","user14.toto.fr","user42.toto.fr");
    $Change = array("","","","","","","","11:31:25","");


    Existe-t-il une fonction permettant cela, ou sinon comment m'y prendre ? J'imagine qu'en utilisant les regex c'est faisable.
    Cordialement, Toiine.

  2. #2
    Invité
    Invité(e)
    Par défaut
    Salut,

    Essaye avec la classe DOMDocument.

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juin 2012
    Messages
    41
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2012
    Messages : 41
    Points : 26
    Points
    26
    Par défaut
    Salut, merci pour ta réponse,
    je suis en train de découvrir DOM et j'ai quelques problèmes.

    J'ai ma page comme ceci :
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    $page = file_get_contents('http://mapage.fr/xo/xo.html');
    $html_page = htmlspecialchars($page);
    $dom = new DOMDocument();
    $dom->loadHTML($html_page);
    $tab = $dom->getElementsByTagName("table");

    Si j'ai bien compris, $tab devrait être une nodelist de tous les tableaux contenus dans ma page html ?
    Or, j'ai essayé de faire un echo $tab->length; et ça m'affiche la valeur 0. Bien qu'il y est plusieurs tableaux utilisant les balise <table>dans ma page.

    Alors comment puis-je m'y prendre pour dans un premier temps récupérer correctement les tableaux afin de pouvoir travailler dessus.

  4. #4
    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... autant dire que tu fais n'importe quoi...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    $page = file_get_contents('http://mapage.fr/xo/xo.html');
    $html_page = htmlspecialchars($page);
    $dom = new DOMDocument();
    $dom->loadHTML($html_page);
    Tout ça ne sert à rien (je veux dire, à part empêcher PHP de parser correctement le document)... pourquoi ne pas utiliser plus simplement DOMDocument:: loadHTMLFile ?

Discussions similaires

  1. Exporter Tableau Html vers Excel en UTF-8
    Par Steufa dans le forum jQuery
    Réponses: 6
    Dernier message: 15/08/2014, 11h24
  2. Export tableau HTML vers Image PNG/JPG
    Par nic2t dans le forum Servlets/JSP
    Réponses: 1
    Dernier message: 06/07/2009, 09h08
  3. [Excel] Exportation tableau html
    Par Dakuan dans le forum Bibliothèques et frameworks
    Réponses: 16
    Dernier message: 17/09/2008, 20h19
  4. Réponses: 3
    Dernier message: 30/08/2007, 08h56
  5. tableau HTML vers CSV
    Par obelix dans le forum Langage
    Réponses: 6
    Dernier message: 09/11/2005, 23h51

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