problème scandir

Eléphanteau du PHP | 21 Messages

03 oct. 2016, 19:58

Bonjour à tous,
Voilà mon problème: scandir me donne très bien la liste des répertoires si je lui donne comme répertoire à tester la racine /, mais ne donne rien si je lui donne un nom de répertoire, par exemple /home
Voilà le code:
$tab=scandir("/home");
for ($i=0 ; $i<count($tab) ; $i++)
{
echo "<br>",$tab[$i];
}

Mammouth du PHP | 1967 Messages

04 oct. 2016, 08:30

Est-ce que home est bien dans ta liste de répertoire quand tu explore la racine ?
Est-ce que ton répertoire /home existe ? Que donne un is_dir() ?
Spols
pour les fan de rubik's cube ou pour les curieux ==> le portail francophone du rubik's cube

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

04 oct. 2016, 09:21

Bonjour,

Si le chemin spécifié ne correspond pas à un dossier, alors une valeur booléenne FALSE est retournée et un warning est généré. Tu peux donc déjà vérifier la valeur de $tab.

A savoir : lorsque l'on travaille avec le système de fichier (c'est le cas de scandir), la racine "/" correspond à la racine de l'ordinateur, pas la racine du site internet. Si ton répertoire "home" est dans un répertoire "www" situé à la racine du serveur, alors le chemin sera "/www/home" :)

Nota : il faut toujours activer / contrôler les erreurs et avertissements quand on développe, c'est toujours plein d'explications sur les problèmes rencontrés par php :)
Ce n'est pas en améliorant la bougie que l'on a inventé l'ampoule...

Eléphanteau du PHP | 21 Messages

01 déc. 2016, 10:44

Le dossier local home existe, bien évidemment. Pour l'instant, rien n'explique cette anomalie.