2014-05-12 5 views
-1

Je ne suis pas sûr de ce qui ne va pas ici. Pour une raison quelconque, la fonction is_dir ne fonctionne pas correctement pour moi. Après cette ligne de code, l'exception Chemin non valide est levée. J'ai vérifié et/usr/htdocs/site/path existe. Quel pourrait être le problème?is_dir dit dir pas exsits mais il existe

+0

'! $ Path' - Wut? Enlevez cela '!'. –

+0

supprimer le "!" devant $ path – Slyvain

+0

Mettez un point-virgule à la fin de 'private $ path', sinon il lancera' Erreur d'analyse: erreur de syntaxe, 'public' inattendu (T_PUBLIC), attendez ',' ou ';' dans ..... 'plus en supprimant le'! 'comme déjà indiqué. –

Répondre

0

$ path signifie que si quoi que ce soit dans le chemin de $, il sera faux!. Ce sera donc! Is_dir (false).

Je pense que votre code sera si {... pas si {

petite mise à jour (is_dir ($ path)!) (Is_dir ($ path)!):

Comme @NiettheDarkAbsol dit , is_dir prend la chaîne (le nom du répertoire) comme paramètre, donc le faux [qui obtient de! $ path ($ chemin devrait être '/ usr/htdocs/site /' dans ce cas, donc $ chemin devrait être bool false) ] sera converti en chaîne '' (vide).

Et le '' est un nom de répertoire non valide dans la plupart des systèmes de fichiers utilisés. Ainsi, le fichier is_dir ne peut pas trouver le répertoire any par ce nom invalide. Et à cause de cela, il retournera false, ce qui a déclenché l'exception throw pour vous signaler que le chemin n'est pas valide.

Grâce à @NiettheDarkAbsol dites-moi le reste.

+1

Ne vous arrêtez pas là. Que fait '! Is_dir (false)' faire? Il place 'false' dans une chaîne, car il attend cette chaîne. Donc ça fait '! Is_dir (" ")' ... Alors que se passe-t-il si vous avez un répertoire qui n'a pas de nom? –

+0

@NiettheDarkAbsol Désolé, mon expérience est faible. Je ne sais pas vraiment ce qui va se passer quand le nom du répertoire est vide. Je pense que cela sera lié au système de fichiers, comme la façon dont le système de fichiers localiser/rechercher des fichiers dans la table de fichiers. – NICK

+0

Eh bien, la bonne nouvelle est que les noms de fichiers et de dossiers ne peuvent pas être vides, jamais. À moins que vous soyez sur une sorte de système d'exploitation personnalisé exotique qui, pour une raison quelconque, le permet. –

1

supprimer ! avant chemin de la variable

essayer comme ceci:

if(!is_dir($path)){ 
     throw new Exception('Invalid path'); 
    } 
Questions connexes