Avatar billede trixxdk Nybegynder
12. februar 2009 - 16:34 Der er 5 kommentarer og
1 løsning

Omvendt sortering af readdir

Hey. Jeg har et meget simpelt script som viser alle filerne i en mappe på min ftp. Det ser ud som følgende:

$count = 0;
if ($handle = opendir('./uploads')) {
    while (false !== ($file = readdir($handle))) {
        if ($file != "." && $file != "..") {$count++;
            print("<a href=\"".$file."\">".$file."</a><br />\n");
        }
    }
echo '<br /><br /><a href="..">Return</a>';
    closedir($handle);
}

Lige nu sorterer den filerne efter dato, men den nyeste er nederst? Jeg vil gerne have, at den nyeste uploadet fil, er den øverste.

Og så lige et tillægsspørgsmål: Hvordan gør jeg, så at scriptet kun viser de 10 nyeste filer?
Avatar billede arne_v Ekspert
12. februar 2009 - 17:31 #1
I.s.f. at udskrive i din while loekke kan du gemme i et array og saa udskrive de sidste elementer i omvendt raekkefoelge.
Avatar billede trixxdk Nybegynder
12. februar 2009 - 18:22 #2
Og præcist hvordan gør jeg det? :) Er knap så skarp til alt det kodning.
Avatar billede arne_v Ekspert
12. februar 2009 - 18:42 #3
noget a la:

$count = 0;
if ($handle = opendir('./uploads')) {
    $files = array();
    while (false !== ($file = readdir($handle))) {
        if ($file != "." && $file != "..") {$count++;
            $files[] = $file;
        }
    }
echo '<br /><br /><a href="..">Return</a>';
    closedir($handle);
    for($i = count($files)-1; $i >= count($files)-10 && $i >= 0; $i--) {
            print("<a href=\"".$files[$i]."\">".$files[$i]."</a><br />\n");
    }
}
Avatar billede trixxdk Nybegynder
12. februar 2009 - 18:53 #4
Mange tak, virkede perfekt. Smid et svar :)
Avatar billede arne_v Ekspert
12. februar 2009 - 18:56 #5
kommer her
Avatar billede coderdk Praktikant
12. februar 2009 - 20:07 #6
Alternativt

if ($handle = opendir('./uploads')) {
    $files = array();
    while (false !== ($file = readdir($handle))) {
        if ($file != "." && $file != "..")
            $files[] = "<a href=\"".$file."\">".$file."</a>";
    }
    closedir($handle);
    echo '<br /><br /><a href="..">Return</a>';
    echo implode( "<br>\n", array_reverse( $files ) );
}

:D
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