PHP|Débutant :: Forums

Advertisement

Besoin d'aide ? N'hésitez pas, mais respectez les règles

Vous n'êtes pas identifié(e).

#1 03-06-2009 07:32:59

taz82000
Membre
Inscription : 03-06-2009
Messages : 6

[Résolu] recuperer certaines données d'un tableau html

Bonjour,
J'aurais besoin de récupérer les données de certaines cellules d'un tableau en html avec un programme php, ce tableau est généré automatiquement par un logiciel qui me renvoi une page avec 8 ou 9 tableaux par pages hmm ... j'ai trouver des fonctions pour faire cela ( des parseurs....) mais je n'arrive pas à les utiliser... je suis un grand debutant, si une âme charitable pouvait m'aider ce serait bien aimable...:D .
En tous cas bonne journée!

Hors ligne

#2 03-06-2009 07:52:08

Maljuna Kris
Infantimigulo
Lieu : Douarnenez 29100 Breizh Izel
Inscription : 08-05-2009
Messages : 2 453
Site Web

Re : [Résolu] recuperer certaines données d'un tableau html

Saluton,
Un piste serait de voir dans quelle mesure la page html peut être reconnue comme un document XML.
Car, à partir de là, on pourrait envisager d'utiliser le Modèle Objet d'un Document (DOM) et les méthodes de l'extension PHP DOM qui vont bien.


Gloire à qui n'ayant pas d'idéal sacro-saint,
Se borne à ne pas trop emmerder ses voisins. G. Brassens Don Juan 1976.
Avĉjo MoKo kantas
La chaîne YouTube MoKo Papy

Hors ligne

#3 03-06-2009 07:54:11

taz82000
Membre
Inscription : 03-06-2009
Messages : 6

Re : [Résolu] recuperer certaines données d'un tableau html

Ah...euh... tres bien c tres gentil de repondre si vite!! comment je peux savoir ca?

Hors ligne

#4 03-06-2009 08:54:18

Maljuna Kris
Infantimigulo
Lieu : Douarnenez 29100 Breizh Izel
Inscription : 08-05-2009
Messages : 2 453
Site Web

Re : [Résolu] recuperer certaines données d'un tableau html

Ben tu pourrais commencer par ça :http://fr2.php.net/manual/fr/domdocumen … mlfile.php, et nous dire ce que ça donne.


Gloire à qui n'ayant pas d'idéal sacro-saint,
Se borne à ne pas trop emmerder ses voisins. G. Brassens Don Juan 1976.
Avĉjo MoKo kantas
La chaîne YouTube MoKo Papy

Hors ligne

#5 03-06-2009 09:06:54

taz82000
Membre
Inscription : 03-06-2009
Messages : 6

Re : [Résolu] recuperer certaines données d'un tableau html

Bon... c'est tres sympa de t'occuper de mon cas... j'ai fais un mini prog php comme celui ci :

<?php
$doc = new DOMDocument();
$doc->loadHTMLFile("mon document.html");
echo $doc->saveHTML();
?>

et je me suis retrouvé avec pleins de lignes comme celles-ci :

Warning: DOMDocument::loadHTMLFile() [domdocument.loadhtmlfile]: Unexpected end tag : p in mon document.html, line: 20 in C:\wamp\www\*****\code parse html.php on line 3

Warning: DOMDocument::loadHTMLFile() [domdocument.loadhtmlfile]: Unexpected end tag : p in mon document.html, line: 27 in C:\wamp\www\*****\code parse html.php on line 3

et pleins d'autres... je penses que c'est pas bon signe docteur ?:mad:

Dernière modification par taz82000 (03-06-2009 09:08:14)

Hors ligne

#6 03-06-2009 09:27:41

Maljuna Kris
Infantimigulo
Lieu : Douarnenez 29100 Breizh Izel
Inscription : 08-05-2009
Messages : 2 453
Site Web

Re : [Résolu] recuperer certaines données d'un tableau html

Ben ça veut dire que le document html source est tout pourri.
Il y a des </p> redondants, inutiles ou mal placés, voire des <p/> (bizarrerie rencontrée dans EzPublish)
Il faut donc t'adresser à la source pollueuse pour lui demander de fournir du HTML strict et propre.


Gloire à qui n'ayant pas d'idéal sacro-saint,
Se borne à ne pas trop emmerder ses voisins. G. Brassens Don Juan 1976.
Avĉjo MoKo kantas
La chaîne YouTube MoKo Papy

Hors ligne

#7 03-06-2009 09:33:31

taz82000
Membre
Inscription : 03-06-2009
Messages : 6

Re : [Résolu] recuperer certaines données d'un tableau html

c'est gentil à toi encore une fois, je me disais bien qu'il était moche ce fichier html, par contre je ne peux rien faire pour la source de ce fichier ...je vais continuer à essayer de trouver une solution pour sortir mes cellules en php... j'ai pas mal de choses a tester mais je sais pas trop comment les utiliser c'est du code php ou je ne vois pas trop quoi faire et quand il y en a je ne comprend pas les manuels...:/

Hors ligne

#8 03-06-2009 09:45:23

Maljuna Kris
Infantimigulo
Lieu : Douarnenez 29100 Breizh Izel
Inscription : 08-05-2009
Messages : 2 453
Site Web

Re : [Résolu] recuperer certaines données d'un tableau html

Est-ce que tu peux mettre un exemplaire du source de ce fichier html ici ou bien est-ce qu'il contient des données sensibles ?


Gloire à qui n'ayant pas d'idéal sacro-saint,
Se borne à ne pas trop emmerder ses voisins. G. Brassens Don Juan 1976.
Avĉjo MoKo kantas
La chaîne YouTube MoKo Papy

Hors ligne

#9 03-06-2009 10:10:31

taz82000
Membre
Inscription : 03-06-2009
Messages : 6

Re : [Résolu] recuperer certaines données d'un tableau html

je change 2/3 trucs dans le code et je le post...

Le voila :


<html><head>
<meta content="text/html; charset=UTF-8" http-equiv="Content-Type">
<title>Trafic de la semaine ***************</title>
</head><body>
<h3>Réunion Téléphone *********</h3>
<hr>
<pre><tt>Dernière mise à jour : 2009-03-31 00:02:21.133</tt></pre>
<p>
</p><p><table border="1">
<tbody><tr><th align="left">type_trafic</th></tr>
<tr><td><tt>Interne *** Groupe </tt></td></tr>
</tbody></table>
</p><hr>
<p>
</p><p><table border="1">
<tbody><tr><th align="left">Date</th><th align="left">code_service</th><th align="left">nb de Conf.</th><th align="left">participants total</th><th align="left">participants moyenne</th><th align="left">participants Max</th><th align="left">cum_duree total</th><th align="left">cum_duree moyenne</th><th align="left">cum_duree Max</th></tr>
<tr><td>L'instruction spécifiée n'a produit aucune donnée</td></tr>
</tbody></table>
</p><hr>
<p>
</p><p><table border="1">
<tbody><tr><th align="left">semaine</th><th align="left">code_service</th><th align="left">nb de Conf.</th><th align="left">participants total</th><th align="left">participants moyenne</th><th align="left">participants Max</th><th align="left">cum_duree total</th><th align="left">cum_duree moyenne</th><th align="left">cum_duree Max</th></tr>
<tr><td>L'instruction spécifiée n'a produit aucune donnée</td></tr>
</tbody></table>
</p><hr>
<p>
</p><p><table border="1">
<tbody><tr><th align="left">type_trafic</th></tr>
<tr><td><tt>Externe</tt></td></tr>
</tbody></table>
</p><hr>
<p>
</p><p><table border="1">
<tbody><tr><th align="left">Date</th><th align="left">code_service</th><th align="left">nb de Conf.</th><th align="left">participants total</th><th align="left">participants moyenne</th><th align="left">participants Max</th><th align="left">cum_duree total</th><th align="left">cum_duree moyenne</th><th align="left">cum_duree Max</th></tr>
<tr><td><tt>20090323</tt></td><td><tt>RESA        </tt></td><td><tt>738</tt></td><td><tt>2990</tt></td><td><tt>4</tt></td><td><tt>27</tt></td><td><tt>8681498</tt></td><td><tt>11763</tt></td><td><tt>102207</tt></td></tr>
<tr><td><tt>20090324</tt></td><td><tt>RESA        </tt></td><td><tt>578</tt></td><td><tt>2432</tt></td><td><tt>4</tt></td><td><tt>54</tt></td><td><tt>7534242</tt></td><td><tt>13035</tt></td><td><tt>298829</tt></td></tr>
<tr><td><tt>20090325</tt></td><td><tt>RESA        </tt></td><td><tt>556</tt></td><td><tt>2104</tt></td><td><tt>3</tt></td><td><tt>26</tt></td><td><tt>6163576</tt></td><td><tt>11085</tt></td><td><tt>97260</tt></td></tr>
<tr><td><tt>20090326</tt></td><td><tt>RESA        </tt></td><td><tt>579</tt></td><td><tt>2274</tt></td><td><tt>3</tt></td><td><tt>20</tt></td><td><tt>6980268</tt></td><td><tt>12055</tt></td><td><tt>86677</tt></td></tr>
<tr><td><tt>20090327</tt></td><td><tt>RESA        </tt></td><td><tt>564</tt></td><td><tt>2208</tt></td><td><tt>3</tt></td><td><tt>17</tt></td><td><tt>6547708</tt></td><td><tt>11609</tt></td><td><tt>88909</tt></td></tr>
<tr><td><tt>20090328</tt></td><td><tt>RESA        </tt></td><td><tt>15</tt></td><td><tt>64</tt></td><td><tt>4</tt></td><td><tt>10</tt></td><td><tt>135665</tt></td><td><tt>9044</tt></td><td><tt>19580</tt></td></tr>
<tr><td><tt>20090329</tt></td><td><tt>RESA        </tt></td><td><tt>5</tt></td><td><tt>27</tt></td><td><tt>5</tt></td><td><tt>10</tt></td><td><tt>41016</tt></td><td><tt>8203</tt></td><td><tt>18828</tt></td></tr>
</tbody></table>
</p><hr>
<p>
</p><p><table border="1">
<tbody><tr><th align="left">semaine</th><th align="left">code_service</th><th align="left">nb de Conf.</th><th align="left">participants total</th><th align="left">participants moyenne</th><th align="left">participants Max</th><th align="left">cum_duree total</th><th align="left">cum_duree moyenne</th><th align="left">cum_duree Max</th></tr>
<tr><td><tt>13</tt></td><td><tt>RESA        </tt></td><td><tt>3035</tt></td><td><tt>12099</tt></td><td><tt>3</tt></td><td><tt>54</tt></td><td><tt>36083973</tt></td><td><tt>11889</tt></td><td><tt>298829</tt></td></tr>
</tbody></table>
</p><hr>
<p>
</p><p><table border="1">
<tbody><tr><th align="left">type_trafic</th></tr>
<tr><td><tt>Total Interne et Externe</tt></td></tr>
</tbody></table>
</p><hr>
<p>
</p><p><table border="1">
<tbody><tr><th align="left">Date</th><th align="left">code_service</th><th align="left">nb de Conf.</th><th align="left">participants total</th><th align="left">participants moyenne</th><th align="left">participants Max</th><th align="left">cum_duree total</th><th align="left">cum_duree moyenne</th><th align="left">cum_duree Max</th></tr>
<tr><td><tt>20090323</tt></td><td><tt>RESA        </tt></td><td><tt>738</tt></td><td><tt>2990</tt></td><td><tt>4</tt></td><td><tt>27</tt></td><td><tt>8681498</tt></td><td><tt>11763</tt></td><td><tt>102207</tt></td></tr>
<tr><td><tt>20090324</tt></td><td><tt>RESA        </tt></td><td><tt>578</tt></td><td><tt>2432</tt></td><td><tt>4</tt></td><td><tt>54</tt></td><td><tt>7534242</tt></td><td><tt>13035</tt></td><td><tt>298829</tt></td></tr>
<tr><td><tt>20090325</tt></td><td><tt>RESA        </tt></td><td><tt>556</tt></td><td><tt>2104</tt></td><td><tt>3</tt></td><td><tt>26</tt></td><td><tt>6163576</tt></td><td><tt>11085</tt></td><td><tt>97260</tt></td></tr>
<tr><td><tt>20090326</tt></td><td><tt>RESA        </tt></td><td><tt>579</tt></td><td><tt>2274</tt></td><td><tt>3</tt></td><td><tt>20</tt></td><td><tt>6980268</tt></td><td><tt>12055</tt></td><td><tt>86677</tt></td></tr>
<tr><td><tt>20090327</tt></td><td><tt>RESA        </tt></td><td><tt>564</tt></td><td><tt>2208</tt></td><td><tt>3</tt></td><td><tt>17</tt></td><td><tt>6547708</tt></td><td><tt>11609</tt></td><td><tt>88909</tt></td></tr>
<tr><td><tt>20090328</tt></td><td><tt>RESA        </tt></td><td><tt>15</tt></td><td><tt>64</tt></td><td><tt>4</tt></td><td><tt>10</tt></td><td><tt>135665</tt></td><td><tt>9044</tt></td><td><tt>19580</tt></td></tr>
<tr><td><tt>20090329</tt></td><td><tt>RESA        </tt></td><td><tt>5</tt></td><td><tt>27</tt></td><td><tt>5</tt></td><td><tt>10</tt></td><td><tt>41016</tt></td><td><tt>8203</tt></td><td><tt>18828</tt></td></tr>
</tbody></table>
</p><hr>
<p>
</p><p><table border="1">
<tbody><tr><th align="left">[color=#f81006]semaine[/color]</th><th align="left">[color=#e72c17]code_service[/color]</th><th align="left">[color=#d63d28]nb de Conf.[/color] </th><th align="left">[color=#da3324]participants total[/color]</th><th align="left">[color=#d84226]participants moyenne[/color]</th><th align="left">[color=#cb3d34]participants Max[/color]</th><th align="left">[color=#d14b2e]cum_duree total[/color]</th><th align="left">[color=#dd3b21]cum_duree moyenne[/color]</th><th align="left">cum_duree Max</th></tr>
<tr><td><tt>13</tt></td><td><tt>RESA        </tt></td><td><tt>3035</tt></td><td><tt>12099</tt></td><td><tt>3</tt></td><td><tt>54</tt></td><td><tt>36083973</tt></td><td><tt>11889</tt></td><td><tt>298829</tt></td></tr>
</tbody></table>
</p><hr>
</body></html>
 

PS: j'ai supprimé les espaces et mis en rouge ce que je devais récuperer...

j'ai pensé supprimer les balises <p> et </p> grace a :$chaine= ereg_replace("<[^>]*>"," ",$chaine)  mais j'arrive meme pas à l'utiliser...

NdM : Penses à utiliser la balise code - ça rends la lecture plus facile

Dernière modification par taz82000 (03-06-2009 10:25:15)

Hors ligne

#10 10-06-2009 08:13:35

taz82000
Membre
Inscription : 03-06-2009
Messages : 6

Re : [Résolu] recuperer certaines données d'un tableau html

Le "topic" est résolu, tongue mais je sais pas comment dire qu'il l'est .... si quelqu'un a besoin du code qu'il n'hesita pas a me contacter!!!:D

Hors ligne

#11 10-08-2009 20:06:52

ciboulette
Membre
Inscription : 10-08-2009
Messages : 1

Re : [Résolu] recuperer certaines données d'un tableau html

perso je suis interessé

moi j'ai un tableau genre :
<table cellpadding="0" cellspacing="0">
<tr>
<td>Michel</td><td>1m85</td><td>40 ans</td>
</tr>
<tr>
<td>François</td><td>1m78</td><td>25 ans</td>
</tr>
<tr>
<td>Anne</td><td>1m64</td><td>19 ans</td>
</tr>
</table>

moi j'ai un tableau comme ceci

et j'aimerai avoir un rendu de type :

array(
array("Michel","1m85","40ans"),
array("François","1m78","25ans"),
array("Anne","1m64","19ans")
);

Hors ligne

#12 10-08-2009 20:24:31

moogli
Modérateur
Inscription : 08-05-2009
Messages : 336
Site Web

Re : [Résolu] recuperer certaines données d'un tableau html

salut,
il va te falloir récupérer  le contenu des tag html.
pour cela il te faut un preg_match_all en recherchant tout les <tr></tr> (et ce qu'il y a dedans).
ensuite pour chaque ligne retournée la même chose pour <td></td> et la tu construit ton tableau php en insérant une ligne par <tr></tr trouvé wink

la doc de preg_mathc_all

pour ce qui est des expression régulière je te conseil expreg.com (il y a même un exemple qui est similaire a ce que tu souhaite faire wink


@+


Il en faut peu pour être heureux pompompompompompompompompompompom

Hors ligne

Pied de page des forums