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
Répondre
$ 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.
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? –
@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
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. –
supprimer !
avant chemin de la variable
essayer comme ceci:
if(!is_dir($path)){
throw new Exception('Invalid path');
}
- 1. is_dir Comment vérifier si dir existe éviter un message d'erreur
- 2. webmaster tools dit robots.txt inaccessible, mais il existe
- 3. valac dit undef ref mais libgee existe
- 4. is_dir ne fonctionne pas comme prévu
- 5. is_dir ne reconnaît pas les répertoires. Pourquoi?
- 6. langage java. il dit que mon fichier n'existe pas, mais il ne
- 7. php is_dir ne fonctionne pas parfois
- 8. Java nouveau File() dit FileNotFoundException mais le fichier existe
- 9. gem rails de désinstallation et il existe toujours, n'a pas installé, mais il a dit qu'il a fait
- 10. is_dir renvoie false même s'il s'agit d'un répertoire?
- 11. PHP - pourquoi is_dir renvoie TRUE quand un répertoire n'existe pas?
- 12. Le fichier Plist existe dans docs dir, mais ne peut pas être chargé dans un tableau.
- 13. Uncaught ReferenceError: is_dir n'est pas défini
- 14. Rails ne trouve pas mon itinéraire mais il existe!
- 15. Ajout d'un projet mais il dit qu'il est manquant
- 16. setInterval dit fonction non définie mais il est
- 17. svn dit conflicté mais il est vraiment fusionné (TortoiseSVN)
- 18. en utilisant php is_dir ('~/tmp') fonctionne sur une machine, mais pas sur une autre. Pourquoi?
- 19. is_dir() avec caractères non-anglais
- 20. Ioncube dit installé, mais App (moteur social) dit que ce n'est pas
- 21. Pourquoi Python dit-il que le fichier n'existe pas?
- 22. -bash pas un tel fichier ou répertoire, mais il existe
- 23. Sqlite3 installé mais dit que ce n'est pas
- 24. mod_rewrite /dir/index.html à/dir/
- 25. autotag.vim est chargé, mais dit pas de fichier de balises
- 26. PHP fichier uploadé pas enregistré, mais dit qu'il a fait
- 27. Pourquoi Sqlite ne me dit-il pas qu'une telle colonne existe quand je l'ai clairement créée?
- 28. fonction membre déclarée, mais le compilateur dit son pas
- 29. is_dir() échoue lors de la numérisation d'un répertoire en php
- 30. CakePHP Missing Controller - mais il existe
'! $ Path' - Wut? Enlevez cela '!'. –
supprimer le "!" devant $ path – Slyvain
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é. –