Récupérer un tableau sur une page web

kalie1313 Messages postés 1 Date d'inscription   Statut Membre Dernière intervention   -  
jordane45 Messages postés 38486 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 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 753
 
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