Avatar billede kingrex666 Nybegynder
25. august 2005 - 12:31 Der er 14 kommentarer og
1 løsning

udvid tæller

hej alle
jeg har denne tæller

function TaelFiler($dir) {
    global $antal;
    $handle=opendir($dir);
    while (false !== ($file = readdir($handle))) {
        if($file != "." && $file != "..") {
            if (is_dir("$dir/$file")) TaelFiler("$dir/$file");
            else $antal++;
        }
    }
    closedir($handle);
    return $antal;
}

$antal = 0;
echo TaelFiler("./mad/andet");

jeg ville gerne hvis man kunne modificrere den til at spring forudbestemte dirs over
med en $skip = array ("./thumbs")

jeg ved bare ikke lige hvordan og hvor den skla stå

/Rasmus
Avatar billede jaw Nybegynder
25. august 2005 - 12:38 #1
Prøv:

function TaelFiler($dir) {
    $skip = array("/thumbs");
    global $antal;
    $handle=opendir($dir);
    while (false !== ($file = readdir($handle))) {
        if($file != "." && $file != "..") {
            if (is_dir("$dir/$file") && !in_array($file, $skip)) TaelFiler("$dir/$file");
            else $antal++;
        }
    }
    closedir($handle);
    return $antal;
}

Muligvis $skip-arrayet lige skal tilpasset mht. at få det sti-træ.
Avatar billede kingrex666 Nybegynder
25. august 2005 - 12:44 #2
Den tælle stadigvæk alle filer og springer ikke over thumbs
Avatar billede kingrex666 Nybegynder
25. august 2005 - 12:47 #3
mappestrukturen er således:

count.php skal tælle filer i mappen mad/andet

heri ligger der en mappe thumbs med de samme filer i og de skal ikke tælles.
Avatar billede jaw Nybegynder
25. august 2005 - 12:47 #4
Så prøv:
$skip = array("thumbs");
Avatar billede kingrex666 Nybegynder
25. august 2005 - 12:53 #5
nej det virker ikke

i mappen mad er der 17 filer og to mapper

count.php skal tælle 17 filer og springe over mapperne.
Avatar billede jaw Nybegynder
25. august 2005 - 12:54 #6
Skal den springe alle mapper over? Eller kun nogen du vælger? For hos mig virker det nu rimeligt...
Avatar billede kingrex666 Nybegynder
25. august 2005 - 12:55 #7
dem jeg vælger
Avatar billede kingrex666 Nybegynder
25. august 2005 - 13:00 #8
undskyld sorry ....
den udelukke fint den ene mappe men tæller den anden
Avatar billede kingrex666 Nybegynder
25. august 2005 - 13:01 #9
men den tæller mappen som en fil
Avatar billede jaw Nybegynder
25. august 2005 - 13:03 #10
Prøv lige denne:

function TaelFiler($dir) {
    $skip = array("./slet/map");
    global $antal;
    $handle=opendir($dir);
    while (false !== ($file = readdir($handle))) {
        if($file != "." && $file != "..") {
              echo $dir."/".$file."<br />";
            if (is_dir("$dir/$file") && !in_array($dir."/".$file, $skip)) TaelFiler("$dir/$file");
            else $antal++;
        }
    }
    closedir($handle);
    return $antal;
}

echo TaelFiler('./slet');

Det er mest for at få hele strukturen på bibliotekerne, ellers har jeg haft et par underbiblioteksproblemer.

Og den tæller mappen som en fil? Det gør den nu godt nok ikke her...
Avatar billede kingrex666 Nybegynder
25. august 2005 - 13:03 #11
ok fandt ud af hvordan men skrev flere mapper åp listen ..... men den tælle stadigvæk mapper med som filer ...
kan men evt, difinerer en endelse på filer der skla tælles?
Avatar billede jaw Nybegynder
25. august 2005 - 13:05 #12
Du havde ret, den tæller filer. Det var fordi jeg havde en lille ændring her lokalt for at se outputtet. Men prøv det her, så skulle den ikke tælle biblioteker mere:

function TaelFiler($dir) {
    $skip = array("./slet/map");
    global $antal;
    $handle=opendir($dir);
    while (false !== ($file = readdir($handle))) {
        if($file != "." && $file != "..") {
            if (is_dir("$dir/$file")) {
                if(!in_array($dir."/".$file, $skip)) {
                    TaelFiler("$dir/$file");
                }
            } else {
                $antal++;
            }
        }
    }
    closedir($handle);
    return $antal;
}
Avatar billede jaw Nybegynder
25. august 2005 - 13:07 #13
Ævl, filer skulle den jo tælle - det er selvfølgelig bibliotek jeg snakker om :)
Avatar billede kingrex666 Nybegynder
25. august 2005 - 13:10 #14
perfekt.
Nu virker det lige som jeg ønskede

smid et svar
Og det er mig der takker
suber service
Avatar billede jaw Nybegynder
25. august 2005 - 13:10 #15
Kanon :) Og selv tak...
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