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

Résolu
Erico-68 Messages postés 2 Date d'inscription   Statut Membre Dernière intervention   -  
 mee -
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
A voir également:

2 réponses

Gigatrappeur Messages postés 226 Date d'inscription   Statut Membre Dernière intervention   25
 
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   Statut Membre Dernière intervention  
 
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   Statut Membre Dernière intervention   25
 
Ok, n'oublie pas de marquer le sujet comme résolu.

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