fonction is_dir() qui bug - PHP - Programmation
Marsh Posté le 06-09-2004 à 11:54:05
j'ai eu la même chose, j'ai utilisé la même solution
Marsh Posté le 06-09-2004 à 11:56:01
jutilise bcp cette fonction et j'ai jamais eu ce pb ton serveur est sous quel OS ?
Marsh Posté le 06-09-2004 à 12:07:15
"./dossier/dossier2" peut etre non?
ou un chemin complet ("/home/fabien/dossier/dossier2" )
Marsh Posté le 06-09-2004 à 12:12:02
neogally a écrit : jutilise bcp cette fonction et j'ai jamais eu ce pb ton serveur est sous quel OS ? |
ben j'ai testé sous windows et linux et ca fait pareil
Marsh Posté le 06-09-2004 à 12:18:05
the real moins moins a écrit : "./dossier/dossier2" peut etre non? |
je viens de tester ca fait pareil
apparement ca a l'air d'etre un bug
Marsh Posté le 06-09-2004 à 12:18:32
neogally a écrit : jutilise bcp cette fonction et j'ai jamais eu ce pb ton serveur est sous quel OS ? |
t'as quelle version de php et t'es sur quel os ?
Marsh Posté le 06-09-2004 à 13:10:28
C'est normal que ca fonctionne pas ton truc, tu as pas fait de chdir, tu peux t'en passer, mais alors voila comment faut faire :
Code :
|
Deux trois conseils
-Initialise ta variable $url
-Ajoute bien le '/' à la fin de ton dossier.
-Si c'est bien pour de l'affichage oublie pas les retours à la ligne.
Marsh Posté le 06-09-2004 à 13:23:22
pourquoi tu me dis qu'il faut que je change de dossier ? moi je veux lire qu'un seul dossier pour savoir ce qui contient et extraire les noms des eventuels dossiers qu'il y a dedans.
Marsh Posté le 06-09-2004 à 13:34:39
Car ta fonctionne is_dir n'est pas complementaire de ta fonction readir / opendir (tu lui passe nul par d'handle.
alors imagine que tu as deux opendir / readdir en meme temps elle fait comment pour savoir quel dossier traiter)
Elle traite le repertoire courant donc si tu es dans le repertoir './' et tu lis les repertoires de './tmp/' ca correspondra pas.
Un truc ton con, fait un test de ta fonction
.
..
test
tmp
-test
-test2
donc tu es la : './'
tu as les repertoires test et tmp
le repertoir tmp a les dossiers test et test2
Utilise ta fonction sur tmp tu vas voir il va te ressortir test. Car il existe à la racine, lieu ou s'execute le script.
Maintenant si tu utilises ma version ou tu lances un chdir($dossier) ca fonctionnera.
Marsh Posté le 06-09-2004 à 14:17:12
sebastien> bizarre ton explication, normalement le opendir() devrait faire automatiquement le changement de dossier.
Sinon, c'est quoi ta version avec le chdir($dossier) ? je le met dans le code ? avant ou aprés le opendir ?
Marsh Posté le 06-09-2004 à 14:26:02
Non mon explication est pas bizarre.
Opendir te place un pointeur sur un repertoire.
chdir change le repertoire courant de php.
et oui si tu veux utiliser le chdir tu dois simplement le mettre dans ta fonction avant le test du is_dir mais c pas la meilleur solution, la meilleur reste celle que j'ai ecrite :
is_dir($dossier.$filename)
Marsh Posté le 06-09-2004 à 14:37:47
ReplyMarsh Posté le 06-09-2004 à 16:39:40
Sebastien a écrit : Non mon explication est pas bizarre. |
+1
Marsh Posté le 06-09-2004 à 11:02:52
Salut tout le monde !
J'ai l'impression que la fonction is_dir() de php bug.
J'ai la fonction suivante pour liste les dossiers d'un dossier:
lorsque $dossier="."; il n'y a pas de problemes, mais lorsque je met une adresse du type $dossier="dossier/dossier2"; ben ca ne m'affiche que "." et ".."
est ce que ca vous fait pareil chez vous ?
La seul solution que j'ai trouvé a ca, c'est d'utiliser !is_file() au lieu de is_dir(), mais j'aimerai bien savoir si c'est un bug ou non.
merci d'avance
---------------
✈ Découvre le HFRcoin ✈ - smilies ♥