Is_dir ne trouve pas mes repertoires ?
Résolu
Dickie45
Messages postés
1
Date d'inscription
Statut
Membre
Dernière intervention
-
Dickie45 -
Dickie45 -
Bonjour,
J'essaye de lister des noms de répertoires et les introduire dans un "array" avec "if(is_dir(...)) et je ne récupère que les deux répertoires "." et ".." alors qu'il y en a 3 autres
En voici le listing php :
et voici le html obtenu :
merci de vos conseils, je suis novice
J'essaye de lister des noms de répertoires et les introduire dans un "array" avec "if(is_dir(...)) et je ne récupère que les deux répertoires "." et ".." alors qu'il y en a 3 autres
En voici le listing php :
<?php
$repertoire='./img/';
$chemin_galeries = opendir($repertoire);
$noms_galeries=array();
while($galerie = readdir($chemin_galeries)){
if(is_dir($galerie)) // && $galerie!="." && $galerie!="..")
{array_push($noms_galeries, $galerie);}
}
closedir($chemin_galeries);
$nb_galeries=count($noms_galeries);
echo "\t<br/><br/>".$nb_galeries." galeries trouvées <br/>dans ".$repertoire." <br/>";
foreach($noms_galeries as $nom){
echo $repertoire.$nom."<br/>";
}
et voici le html obtenu :
<div id='gauche'> <br/><br/>2 galeries trouvées <br/>dans ./img/ <br/>./img/.<br/>./img/..<br/> </div>
merci de vos conseils, je suis novice
Configuration: Windows / Firefox 56.0
2 réponses
-
Bonjour,
Dans la doc de phpil est indiqué/* Ceci est la façon correcte de traverser un dossier. */ while (false !== ($entry = readdir($handle))) { echo "$entry\n"; } /* Ceci est la MAUVAISE façon de traverser un dossier. */ while ($entry = readdir($handle)) { echo "$entry\n"; }
Tu as donc choisi la mauvaise.
Ensuite, il me semble que tu n'as pas ré-indiqué le chemin vers ces dossiers.
En faisant, comme dans l'exemple, un echo .. tu pourrais voir ce que contient réellement ta variable
Et je suppose qu'en faisantif(is_dir( $repertoire . $galerie)) {
ça devrait mieux marcher
-
En effet j'avais indiqué incomplètement le chemin !
Ça a suffi pour régler le pb sur lequel je séchais.
J'ai en plus corrigé pour utiliser la façon "correcte"...
Marci.