Lecture d'une array sur boucle
Bonjour à tous
me voila confronté à un problème de taille : j'utilise la fonction suivante pour lire le contenu d'un répertoire et le trier par ordre alphabétique (car sur les serveurs linux ça n'est pas par défaut >< )
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| function lire_dossier($path){
if (is_dir($path)){
$result[] = array();
if ($dh = opendir($path)){
while (($File = readdir($dh)) !== false){
$File = utf8_encode ( $File );
$result[] = $File;
}
closedir($dh);
}
}
sort($result);
return $result;
} |
problème j'arrive à récupérer l'array dans le résultat (avec un print_r) mais lorsque je fait un foreach dessus il me sort que le dernier résultat
le code qui appelle la fonction + boucle
Code:
1 2 3 4 5 6 7 8 9 10 11 12
| $rep_a_lire = $racine ."/contenu/". $categorie; /* création de la variable du répertoire a lire */
$rep_a_lire = iconv("UTF-8", "WINDOWS-1252", $rep_a_lire); /* conversion de la chaine pour etre accepté (dossiers avec accent dans le path*/
$liste_fichier[] = lire_dossier($rep_a_lire); /*récupération du contenu du répertoire */
echo 'debut de $liste_fichier[]<br /><pre>'; /*affichage*/
print_r($liste_fichier); /*extraction en brut de l'array*/
echo '</pre>';
echo 'fin de $liste_fichier[]<br /><br /><hr /><br />début de la boucle foreach<br /><br />'; /*affichage d'agrémentation*/
foreach($liste_fichier as $Fichier){ /*boucle sur la liste des fichiers dans le répertoire */
echo $Fichier .'<br />'; /* on affiche le fichier actuellement récupéré dans la boucle*/
/*TODO : FAIRE LE TRAITEMENT*/
}
echo'<br />fin de la boucle foreach'; /*affichage signalant que l'on est sortie de la boucle */ |
voilà le résultat qui me sort (affichage en pur dans le navigateur)
debut de $liste_fichier[]
Array
(
[0] => Array
(
[0] => .
[1] => ..
[2] => 01-test
[3] => Array
(
)
)
)
fin de $liste_fichier[]
---------------------------------------------------------------------
début de la boucle foreach
Array
fin de la boucle foreach
pouvez vous m'aider ?
Merci d'avance :)