Récupérer un tableau sur une page web

Fermé
kalie1313 Messages postés 1 Date d'inscription vendredi 4 septembre 2020 Statut Membre Dernière intervention 4 septembre 2020 - Modifié le 5 sept. 2020 à 08:19
jordane45 Messages postés 38144 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 21 avril 2024 - 28 sept. 2020 à 21:04
Bonjour

Merci par avance à qui pourra m'aider, je planche et pense que ce ne soit pas très dur mais la tête ne fonctionne pas toujours ...

Dans le cadre d'un projet (pour une fin de formation), j'ai besoin de récupérer les valeurs d'un tableau sur une page web.
J'ai des bases en php mais là on me demande de récupérer sur une page web (peu importe le site) un tableau présent et de le mettre en forme et là je planche ...
Je dois donner un exemple et je n'y arrive pas.

J'ai fait ainsi
<?php

$doc=new domDocument;
//@$doc->loadHTML($html);
$doc->loadHTMLFile('https://www.xxx.fr/page.php');
$tables=$doc->getElementsByTagName('table');

$lignes=$tables->item(0)->getElementsByTagName('tr');
foreach ($lignes as $ligne) {
 $cols=$ligne->childNodes;
 $i=0;
 foreach ($cols as $col) {
  $contenu=trim($col->nodeValue);
  if (!empty($contenu)) {
   echo $contenu,"\t";
  }
 }
 echo '<hr />';
}
?>


Là j'arrive bien à récupérer le tableau ligne par ligne mais rien n'est délimité, et je ne sais pas
comment au niveau css pouvoir remettre le tableau, mettre des largeurs sur les td, enfin refaire un tableau propre.
Je serais indéfiniment reconnaissante si l'on pouvait m'aider....
A 50 ans ma tête a du mal ...

Merci par avance pour vos réponses

2 réponses

NathanDev Messages postés 2 Date d'inscription lundi 28 septembre 2020 Statut Membre Dernière intervention 28 septembre 2020
28 sept. 2020 à 18:58
Qui est-ce que vous comptez reproduire ?
0
jordane45 Messages postés 38144 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 21 avril 2024 4 650
28 sept. 2020 à 21:04
Bonjour,

Là, ton code récupère et affiche le contenu de chaque cellule...
Si ton but est de restituer sous forme de tableau.. alors il faut que tu recréés un tableau en html
$tables = $doc->getElementsByTagName('table');
if(!empty($tables )){
	foreach ($tables as $table) {

		echo "<table>";
			
		$rows = $table->getElementsByTagName("tr");
	 
		foreach ($rows as $row) {
			echo "<tr>";
			$cells = $row -> getElementsByTagName('td');
			foreach ($cells as $cell) {
			  echo "<td>";
			  print $cell->nodeValue; 
			  echo "</td>";
			}
			echo "</tr>";
		}
		
		echo "</table>";
	}
 
}


Ensuite, rien ne t'empêche d'ajouter du CSS sur ton "élément" table.
0