Récupérer un tableau sur une page web

kalie1313 Messages postés 1 Statut Membre -  
jordane45 Messages postés 40050 Date d'inscription   Statut Modérateur Dernière intervention   -
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 Statut Membre
 
Qui est-ce que vous comptez reproduire ?
0
jordane45 Messages postés 40050 Date d'inscription   Statut Modérateur Dernière intervention   4 759
 
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