Avatar billede syswatch Novice
13. maj 2003 - 12:57 Der er 14 kommentarer og
1 løsning

List filer i dir og put i array....?

Hejsa.
Jeg skal bruge et lille hurtigt og simplet script, der putter filnavnene ind i et array, så man senere kan hente dem frem ved at skrive fx: print "$fil[2]";
Avatar billede tkandersen Nybegynder
13. maj 2003 - 13:04 #1
Nu skriver du filnavnene i bestemt form - hvor kommer de fra?
Hvilken del af det skal du have hjælp til ?
Avatar billede fangel Nybegynder
13. maj 2003 - 13:04 #2
jeg har lavet dette system hvor man kan lidt af hvert... bl.a. liste filer fra mappen:
http://mfa.ath.cx/DeSI_OFMS_1rc3.zip

koden der lister filer og mapper er denne:

---
<?php
$NoGo = array();
if ($handle = opendir($dir)) {
    while (false !== ($file = readdir($handle))) {
        if ($file !== "." && $file !== ".." && !in_array($file, $NoGo)) {
          if(is_dir($file)){
            $dirs[] = "$file";
          }
          else {
            $files[] = "$file";
          }
        }
    }
    closedir($handle);
}
if(isset($dirs)) $antal_dirs = count($dirs);
else $antal_dirs = "0";
if(isset($files)) $antal_files = count($files);
else $antal_files = "0";
?>
---

du kan så fylde arrayet "NoGo" med filnavne / mapper du ikke vil have listet!

sciptet laver 2 arrays, met med mapper "dirs" og et med filer "files", desuden 2 variabler med antal filer og mapper...

Morten
Avatar billede fangel Nybegynder
13. maj 2003 - 13:07 #3
hov, glemte at sige at du skal angive mappenavn i variablen "dir"
Avatar billede fangel Nybegynder
13. maj 2003 - 13:09 #4
hov igen, der findes en version hvor lidt flere fejl er rettet: http://mfa.ath.cx/DeSI_OFMS_1rc4.zip
Avatar billede syswatch Novice
13. maj 2003 - 13:15 #5
Jeg har fx. en mappe der hedder "files" og i den mappe ligger der mellem 10 og 15 zip filer. Så det jeg skal bruge er bare et lille script der læser disse filnavne og gemmer dem i et array, så jeg senere kan skrive dem ud...
Avatar billede fangel Nybegynder
13. maj 2003 - 13:20 #6
<?php
$dir = "files"; // mappen der skal listes
if ($handle = opendir($dir)) {
    while (false !== ($file = readdir($handle))) {
        if ($file !== "." && $file !== "..") {
          if(is_dir($file)){
            $dirs[] = "$file";
          }
          else {
            $files[] = "$file";
          }
        }
    }
    closedir($handle);
}
if(isset($dirs)) $antal_dirs = count($dirs);
else $antal_dirs = "0";
if(isset($files)) $antal_files = count($files);
else $antal_files = "0";
?>

Morten
Avatar billede jakoba Nybegynder
13. maj 2003 - 13:23 #7
dea_pg > hvorfor ikke:

$NoGo = array( ".", ".." );  // tilføj evt andre filer du ønsker at springe over
if ($handle = opendir($dir)) {
    while (false !== ($file = readdir($handle))) {
        if ( ! in_array($file, $NoGo) ) {

er in_array funktionen så dyr det er værd at teste for "." og ".." udefor ?
Avatar billede fangel Nybegynder
13. maj 2003 - 14:01 #8
jakoba => nej, scriptet er lavet for lang tid side, og over mange omgange... de 2 første var der orig, og senere kom NoGo ind i billedet...

Morten
Avatar billede tkandersen Nybegynder
13. maj 2003 - 14:24 #9
dea_pg og jakoba > eller

...  if ($file[0] !== ".")  // fri for skjulte filer/mapper, . og ..

Indeholder så ikke mulighed for at fjerne specifikt navngivne filer.
Avatar billede fangel Nybegynder
13. maj 2003 - 14:28 #10
du kan tilføje filnavne til arrayet "NoGo", så bliver de filtreret bort...

Morten
Avatar billede fangel Nybegynder
13. maj 2003 - 14:29 #11
hov... læste forkert... og du filtrere ikke ".." fra...

Morten
Avatar billede tkandersen Nybegynder
13. maj 2003 - 14:35 #12
dea_pg > jo,
for jeg tester KUN på første tegn i filnavnet ($file[0]). Er det "." så dækker det både over ".", "..", ".xxxx" osv
Avatar billede fangel Nybegynder
13. maj 2003 - 15:01 #13
sorry... missed that one... ;) (men tænk man ville have .htacces med ;)
Avatar billede tkandersen Nybegynder
13. maj 2003 - 21:04 #14
dea_pg > haha, hvem ville dog vise skjulte filer frem
Avatar billede fangel Nybegynder
14. maj 2003 - 07:29 #15
(det kunne være, nogle folk er mærkelige ;)
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