[RESOLU] is_dir ne voit pas mes dossiers comme tel

Eléphanteau du PHP | 42 Messages

10 juin 2015, 00:13

Bonjour,

Voici mon code de test :

Code : Tout sélectionner

<?php $dir = './photos'; $files1 = scandir($dir); print_r($files1); echo '<br>========<br>'; foreach ($files1 as $key => $file) { if (is_dir($file)) {echo $file.' => ';} } ?>

Voici mon résultat. Ce sont tous des répertoires.
Array ( [0] => . [1] => .. [2] => 123 [3] => dossier [4] => en_cours [5] => sport [6] => test [7] => titi [8] => toto )
========
. => .. => sport =>

Je ne comprend pas. J'ai pourtant déjà réussit à en créer un autre, supprimé depuis. Et le dossier photo est bien lu comme tel.
Pourquoi mes dossiers ne sont pas reconnus et comment remédier à cela ?
J'ai tenté de crée mes dossier directement sur le serveur via dreamweaver, directement via mozilla, de créer en local puis de les up.

Bonne journée

ViPHP
ViPHP | 928 Messages

10 juin 2015, 00:29

Ton chemin est incomplet, tu dois faire ça :
foreach ($files1 as $key => $file)
{
   if (is_dir($dir.$file)) {echo $file.' => ';}
}

Mammouth du PHP | 688 Messages

10 juin 2015, 00:30

un truc du genre :
if (is_dir($dir."/".$file))

Eléphanteau du PHP | 42 Messages

10 juin 2015, 00:49

Bha non.
Mon chemin est bon sinon il ne trouverai pas le dossier photos.
$file contient déjà le chemin

C'est juste qu'il trouve un seul dossier et ne voit pas les autres.

Ca me semble absurde.
J'ai beau chercher je ne voit pas.

ViPHP
ViPHP | 928 Messages

10 juin 2015, 01:08

La solution que je t'ai donné fonctionne, à part qu'il faut ajouter un "/" entre les deux, donc if (is_dir($dir."/".$file)).

Dans ta boucle, $file vaut par exemple "sport", par rapport au dossier "./photos". Or toi tu n'es pas dans ce dossier, mais dans le dossier parent, donc il faut que tu donnes le chemin complet.

Eléphanteau du PHP | 42 Messages

10 juin 2015, 01:16

Ha oui, effectivement... punaise.
C'est juste qu'il y avait un autre dossier du même nom plus bas en hiérarchie. et que je n'avais pas fais cette erreur pour les sous-dossier ...
Je comprend mieux pourquoi je ne comprenais pas.

Merci beaucoup ! !