Comment récupérer une partie d'un tableau dans une page html

Résolu/Fermé
Erico-68 Messages postés 2 Date d'inscription mardi 7 mai 2013 Statut Membre Dernière intervention 7 mai 2013 - 7 mai 2013 à 15:22
 mee - 8 juin 2015 à 21:00
Bonjour,

Je génère avec un programme tiers un tableau qui se présente sous la forme suivante et je le charge le fichier .html sur mon serveur par FTP (les "...." sont des morceaux du code du tableau que je n'ai pas reproduit pour ne pas trop allonger le post) :

<table>
......
<tr>
.....
<td align="left" width="19">e1s</td>
</tr>
<tr>
<td
style="border-left: 1px solid rgb(255, 255, 255); border-right: 1px solid rgb(255, 255, 255); border-bottom: 1px solid rgb(255, 255, 255);"
colspan="22" align="center" bgcolor="#00b8ff" height="20"
valign="middle"><font color="#ffffff" size="3">GFS
(NOAA) - FNMOC/WW3 swell & wind forecast</font></td>
</tr>
<tr>
<td align="left" height="8"><br>
</td>
<td align="left"><br>
</td>
<td align="left"><br>
.....
</tr>
<tr>
<td align="center" height="17" valign="middle">e1f</td>
<td align="left"><br>
</td>
.......
</table>


Je souhaiterais récupérer la partie de code de ce tableau pour l'inclure dans une des pages de mon site web, plus concrètement la partie qui se trouve entre les segments de code suivants :

<td align="left" width="19">e1s</td>
</tr>

et
<tr>
<td align="center" height="17" valign="middle">e1f</td>


J'ai trouvé des sujets similaires, notamment pour l'extraction de la totalité d'un tableau (donc le code compris entre les balise <table> et </table>), mais je n'ai pas trouvé de solution pour extraire une partie - quelques lignes et cellules - d'un tableau seulement.

Est-ce possible de faire ça en PHP ?

Merci

2 réponses

Gigatrappeur Messages postés 226 Date d'inscription lundi 6 mai 2013 Statut Membre Dernière intervention 3 juillet 2014 25
7 mai 2013 à 15:59
Bonjour,

En effet, tu peux faire cela en PHP.
Pour ce faire, il faut que ton fichier HTML soit accessible via PHP.

Vu que tu connais le pattern de début et le pattern de fin, tu peux utiliser strpos conjontement avec substr.

Cela te donne un truc du genre :
$content = file_get_contents('url_de_ton_fichier_html');
$posDebut = strpos('pattern_debut') + strlen('pattern_debut');
$posFin = strpos('pattern_fin');
$resultat = substr($content, $posDebut, $posFin - $posDebut);

Tu peux aussi utiliser une expression régulière ou charger ton HTML comme un fichier XML et le parcourir à l'aide du DOM.

Cordialement,
Gigatrappeur
0
Erico-68 Messages postés 2 Date d'inscription mardi 7 mai 2013 Statut Membre Dernière intervention 7 mai 2013
7 mai 2013 à 19:41
Bonjour Gigatrappeur,

Je viens de terminer quelques tests avec strpos et substr. Il semble que c'est juste ce dont j'ai besoin, en tout cas mes premiers essais sont concluants. J'ai légèrement adapté ton code comme ceci :
<?php
$content = file_get_contents(mon_fichier.html');
$baliseDebut = "<td align=\"left\" width=\"19\">e1s</td>
</tr>";
$posDebut = strpos($content, $baliseDebut) + strlen($baliseDebut);
$baliseFin = "<tr>
<td align=\"center\" height=\"17\" valign=\"middle\">e1f</td>"; 
$posFin = strpos($content, $baliseFin);
$resultat = substr($content, $posDebut, $posFin - $posDebut);
echo $resultat; 
?>

Un tout grand merci pour ta réponse rapide et pertinente.
Cordiallement,
Erico-68
0
Gigatrappeur Messages postés 226 Date d'inscription lundi 6 mai 2013 Statut Membre Dernière intervention 3 juillet 2014 25
8 mai 2013 à 10:12
Ok, n'oublie pas de marquer le sujet comme résolu.

Cordialement,
Gigatrappeur
0
Bonjour,
a quoi sert :
$posFin = strpos
0