probleme avec is_dir() pour filtrer les repertoires

probleme avec is_dir() pour filtrer les repertoires - PHP - Programmation

Marsh Posté le 11-05-2004 à 16:29:01    

<?php
$handle = opendir('./datas'); //ouvre repertoire
while($rep = readdir($handle))
{
 if(is_dir($rep))
 {
    echo "{$rep}<br>";
 }
}
closedir($handle);
?>
 
ca ne fonctionne pas, ca n'affiche que les repertoires . et ..
si je fais opendir('.') il m'affiche . .. res datas sauf les fichiers ce qui est normal.
Mais je ne comprend pas pourquoi il n'aime pas mon ./datas

Reply

Marsh Posté le 11-05-2004 à 16:29:01   

Reply

Marsh Posté le 11-05-2004 à 16:31:07    

ben il n'y a peu etre rien dans ton dossier datas/
 
il t'affichera toujours . et .. donc il faudra que tu mettre
 

if ($rep!="." && $rep!=".." ) echo $rep."<br />"

Reply

Marsh Posté le 11-05-2004 à 18:41:01    

bien sur qu'il y a des repertoires dans datas !!! :D
c pour ça que je pige pas le blem
je v retesté sur une autre machine

Reply

Marsh Posté le 12-05-2004 à 10:00:00    

bon en fait mon script n'est pas dans le dossier datas, c'est pour ca que ca ne marche pas.
je suis dans c:/easyphp/www en fait
donc le script marche pour opendir("." )
par contre opendir(datas) ne fonctionne que si je suis dans c:/easyphp/www/datas

Reply

Marsh Posté le 12-05-2004 à 13:02:55    

supertimor2k a écrit :


par contre opendir(datas) ne fonctionne que si je suis dans c:/easyphp/www/datas


 
t'as qu'à faire opendir('./datas') dans www ...


---------------
Posté depuis des chiottes, sales. Me gusta.
Reply

Marsh Posté le 12-05-2004 à 13:48:07    

opendir('./datas') lit ce qu'il y a dans ./datas mais on change pas de repertoire
en fait le is_dir() doit se faire sur ./datas/$rep , dans mon cas je faisais sur ./$rep en réalité donc il affichait ./.  et  ./..  et dans www/  ./$rep n'existe pas donc ce pas un repertoire !

Reply

Marsh Posté le 12-05-2004 à 20:41:56    

Utiliser chdir, sinon.
 

Code :
  1. $path = './datas/'.$rep ;
  2. chdir($path);
  3. $dir = opendir($path);
  4. while (($file = readdir($dir)) !== FALSE) {
  5.    ...
  6. }


Message édité par sielfried le 12-05-2004 à 20:43:13
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed