Comment récupérer une partie d'un tableau dans une page html [Résolu/Fermé]

Signaler
Messages postés
2
Date d'inscription
mardi 7 mai 2013
Statut
Membre
Dernière intervention
7 mai 2013
-
 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

2 réponses

Messages postés
226
Date d'inscription
lundi 6 mai 2013
Statut
Membre
Dernière intervention
3 juillet 2014
20
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
Messages postés
2
Date d'inscription
mardi 7 mai 2013
Statut
Membre
Dernière intervention
7 mai 2013

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
Messages postés
226
Date d'inscription
lundi 6 mai 2013
Statut
Membre
Dernière intervention
3 juillet 2014
20
Ok, n'oublie pas de marquer le sujet comme résolu.

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