Aller au contenu

extraire les données d'un tableau html


Sujets conseillés

Posté

Salut,

J'aimerais faire un truc tout con mais comme ca fait un moment que j'ai pas code, je sais plus rien faire lol

Je récupere le code source d'une page ou se trouve mon emploi du temps dans un tableau html de ce type :

TABLE BORDER COLS=9 WIDTH="100%">
<TR><TD WIDTH="20%" BGCOLOR=#949494>Date </TD>
<TD WIDTH="05%" BGCOLOR=#949494>Heure</TD>
<TD WIDTH="18%" BGCOLOR=#949494>Matière</TD>
<TD WIDTH="07%" BGCOLOR=#949494>Groupe</TD>

<TD WIDTH="10%" BGCOLOR=#949494>Type_séance</TD>
<TD WIDTH="10%" BGCOLOR=#949494>Professeur</TD>
<TD WIDTH="05%" BGCOLOR=#949494>Durée</TD>
<TD WIDTH="10%" BGCOLOR=#949494>Salle</TD>
<TD WIDTH="15%" BGCOLOR=#949494>Observations</TD>
</TR><TR VALIGN=TOP><TD WIDTH="20%" BGCOLOR=#51A8FF>13-11-06 </TD>
<TD WIDTH="05%" BGCOLOR=#51A8FF>08h30 </TD>

<TD WIDTH="18%" BGCOLOR=#51A8FF>Gestion d"Entreprise </TD>
<TD WIDTH="07%" BGCOLOR=#51A8FF> - </TD>
<TD WIDTH="10%" BGCOLOR=#51A8FF>COURS </TD>
<TD WIDTH="10%" BGCOLOR=#51A8FF>CHERBONNIER </TD>
<TD WIDTH="05%" BGCOLOR=#51A8FF>01h30 </TD>
<TD WIDTH="10%" BGCOLOR=#51A8FF>AMPHI1 </TD>

<TD WIDTH="15%" BGCOLOR=#51A8FF> </TD>
</TR>

Je voudrais récupérer les informations qui se troue entre les TD (dans un tableau php par exemple).

Est ce que quelqu'un pourrait m'aider a me rappeller certaines fonctions ?

Merci

gob

Posté

Bonjour,

bienvenue sur le hub ! ;)

au vu de ton code je ne trouve aucun intérêt à se prendre la tête à essayer de ressortir le code de la sorte, je pense que la meilleure solution est de repenser ta façon de faire afin de simplifier ton code ou de tout repenser (en XML par ex.)

mais si tu persistes quand même tu trouveras dans le manuel toutes les focntions qui te seront nécessaire:

http://fr.php.net/manual/fr/ref.strings.php

Posté

Bonjour,

si tu souhaites extraire le contenu des balises <td>, pouquoi ne pas faire appel aux expressions rationnelles ?

Je rejoins xou dans sa remarque si tu as accès à la génération de la page où se situe ton emploi du temps. SI c'est une page générée par ton école, là evidement, t'as pas vraiment d'autres solutions que parser le code source ^^.

Bon courage.

Posté

Bonjour,

Tu peux déja commencer par supprimer toutes les balises HTML grâce à la fonction strip_tags. Il sera sans doute plus aisé de lire le fichier pour en recueillir les données.

Posté

Bonjour Gob42,

Puisque que tu récuperes une page html, ouvre là avec Excel ....et enregistre la dans un format que tu veux (p. ex. xml)...en ayant fait le ménage sur les lignes qui ne t'interreses pas...

Il sera plus facile pour toi apres de parser un fichier XML qu'HTML....

Bonne journée

Posté

Merci déja de vos réponses.

Je voudrais le faire en PHP car après je voudrais faire un script automatique pour que toute l'école puisse en profiter.

Je ne peux pas modifier la génération du code car c'est l'administration de l'école qui le fournit.

Je ne peux rien faire manuellement, car la j'ai mis que 2cours, mais le tableau est très grand .... et il est mis a jours tous les jours, c'est pour ca qu'il me faut un script générique.

Voici le code que j'utilise :

$fp = fopen("http://monfichier.php","r");
while (!feof($fp)) {
$page .= fgets($fp, 4096);
}

$page = strip_tags($page);
$page = ereg_replace(' ', ' ', $page);
echo $page;

fclose($fp);

et voila le résultat que ca me donne (le code source) :

<html>

<head>
<title></title>
</head>

<body>







.TitrePage { color: #7B2266; }




Consultation emploi du temps Ecole dernière mise à jour 13-11-2006
Nom Prénom Classe: Nom de la classe


Date
Heure
Matière
Groupe
Type_séance
Professeur
Durée
Salle
Observations
13-11-06
08h30
Gestion d"Entreprise
-
COURS
xxx
01h30
AMPHI1

13-11-06
10h15
Notions Juridiques
-
COURS
xxx
01h30
AMPHI1

13-11-06
13h30
Technologie des Travaux Publics
-
COURS
xxx
03h00
J
Lieu

Je voudrais récupérer dans des variables : le nom de l'élève, le prénom de l'élève, le nom de classe et la date de mise a jours.

Ensuite récupérer dans un tableau PHP ou d'une autre manière les différents cours (Date, Heure, Cours, Groupe, Prof, Nombre d'Heure, Classe, Lieu)

De quel manière puisse faire ca ?

Merci

Posté

Je viens de réussir a extraire la date :

ereg ("dernière mise à jour   ([0-9]{2})-([0-9]{2})-([0-9]{4})", $page, $regs);
$date_update = $regs[1]."/".$regs[2]."/".$regs[3];

Comment faire pour récupérer le reste ? et comment faire pour ensuite supprimer le code de <html> a Observations ?

encore merci

Laurent

Posté

un masque du genre

<tr><td[^>]*>([^<]*)</td><td[^>]*>([^<]*)</td>....

autant de fois que nécessaire, à voir après pour gérer les sauts de ligne dans le texte

Veuillez vous connecter pour commenter

Vous pourrez laisser un commentaire après vous êtes connecté.



Connectez-vous maintenant
×
×
  • Créer...