Avatar billede a-zartie Nybegynder
31. januar 2003 - 10:14 Der er 6 kommentarer og
1 løsning

problemer med is_file()

Jeg har en funktion til at vise indholdet af et dir.

function getfilelist( $dir_name ){
$dir_name  = "$dir_name";
$dir      = opendir($dir_name);
$basename  = basename($dir_name);
$fileArr  = array();

while($file_name = readdir($dir)){
  if(is_file($file_name) && $file_name != "." && $file_name != ".."){
      $fName = "$dir_name/$file_name";
      $fTime = filemtime($fName);
      $fileArr[$file_name] = $fTime; 
  }
}

arsort($fileArr); $numberOfFiles = sizeOf($fileArr);

for($t = 0; $t < $numberOfFiles; $t++){
  $thisFile = each($fileArr);
  $thisName = $thisFile[0];
  //$thisTime = $thisFile[1];
  //$thisTime = date("d M y", $thisTime);
  echo "<b>$thisName</b><br>\n";
}

closedir($dir);

}

problemet ar at jeg gerne vil have den til kun at vise filer, og ikke dir's. Jeg har derfor sat is_file ind til at tjecke om det er en fil, men så kommer den slet ikke ud med noget??  nogle guldkorn, til hvad der kan være galt?
Avatar billede sukos Juniormester
31. januar 2003 - 11:24 #1
og eksperten :O)
Avatar billede sukos Juniormester
31. januar 2003 - 11:24 #2
eller er måske "fixet nu"?
Avatar billede a-zartie Nybegynder
31. januar 2003 - 11:35 #3
hmm... tjaa...  aner ikke hvor spørgsmålet er blevet af....
Avatar billede a-zartie Nybegynder
31. januar 2003 - 11:38 #4
function getfilelist( $dir_name ){
$dir_name  = "$dir_name";
$dir      = opendir($dir_name);
$basename  = basename($dir_name);
$fileArr  = array();

while($file_name = readdir($dir)){
  if($file_name != "." && $file_name != ".."){
      $fName = "$dir_name/$file_name";
      $fTime = filemtime($fName);
      $fileArr[$file_name] = $fTime; 
  }
}

arsort($fileArr); $numberOfFiles = sizeOf($fileArr);

for($t = 0; $t < $numberOfFiles; $t++){
  $thisFile = each($fileArr);
  $thisName = $thisFile[0];
  //$thisTime = $thisFile[1];
  //$thisTime = date("d M y", $thisTime);
  echo "$thisName";
}
closedir($dir);
}

never the less....    jeg har følgende til at læse filnavne i et bibliotek, men den returnere også dir's. Har prøvet at skrive if(is_file($file_name) && $file_name != "." && $file_name != "..") i if sætningen, men så returnerer den slet ikke noget....
Avatar billede sukos Juniormester
31. januar 2003 - 11:46 #5
hmm, bruger selv dett på sukos.dk

while (false !== ($dir = readdir($path))){

    if ($dir == "." || $dir == ".." || !is_dir($dir)) {
continue;
    }else{
    $dirlist[] = $dir;
    }
}

Må jo så kunne ændres til:

while (false !== ($file_name = readdir($dir))){

    if ($file_name == "." || $file_name == ".." || !is_file($file_name)) {
continue;
    }else{
      $fName = "$dir_name/$file_name";
      $fTime = filemtime($fName);
      $fileArr[$file_name] = $fTime;
    }
}
Avatar billede a-zartie Nybegynder
31. januar 2003 - 13:31 #6
nææ... samme resultat...    måske det er fordi der ligger på en fat disk?!!?
prøver lige på en linux box i stedet
Avatar billede a-zartie Nybegynder
20. marts 2003 - 10:41 #7
lukker.....
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester