8791 sujets

Développement web côté serveur, CMS

Bonsoir,

pas très doué en PHP, je suis arrivé à ce code

<?php
$chemin = '/home/toto/xml/';
$dossier = opendir( $chemin );
$exceptions = array( '.', '..' );

while ( $fichier = readdir( $dossier ) );
{
if ( !in_array( $fichier, $exceptions ) AND preg_match( '`.xml$`', $fichier ) == 1 );
{
if ( FALSE !== $informations = @simplexml_load_file($fichier)); 

// On affiche les noeuds
foreach ($informations->presentation as $item) { 
  echo '<td>'.$item->departement.'</td>
	<td>'.$item->nom.'</td>
';
}
foreach ($informations->website as $item) { 
  echo '<td><a href="'.$item->url.'" title="Website">W</a></td>';
}
foreach ($informations->divers as $item) { 
  echo '	<td>'.$item->modification.'</td>
</tr>';
}

}
}
?>


Je veux lire tous les fichiers XML présents dans un répertoire (ils ont la même structure) et les lire tout simplement dans un <table>.

Mon code me donne une erreur "Warning: Invalid argument supplied for foreach()"

Quelles erreurs ais-je fait? Smiley sweatdrop

++
Hmmmmm......
Peut-être une piste......
De mémoire, ton $fichier ne contient que le nom du fichier, sans le chemin. Essaye peut-être de faire un simplexml_load_file($chemin.$fichier)
En fait, il faut déjà s'assurer que les fichiers ont bien été loadés. Pour tester, remplace déjà les 3 foreach par un simple print_r($informations); et regarde si le contenu de chacun de tes fichiers XML s'affiche.
Anéfé tu avais raison, il fallait mettre "$chemin.$fichier" Smiley cligne

J'aurais également besoin que les données soient classées numériquement à partir de 01, selon l'item "departement", quelle fonction puis-je utiliser?

++