Avatar billede jacob_m Nybegynder
23. oktober 2006 - 11:19 Der er 5 kommentarer og
1 løsning

Sortering af readdir

Hey PHPs.

Jeg har en meget simpel funktion som åbner en mappe og læser indholdet ind i et array.

------ Funktion --------------

function pic_array($map){
if ($handle = opendir($map)) {
    while (false !== ($file = readdir($handle))) {
        if ($file != "." && $file != ".."){
            $array[] = $file;
            };
        };
    };
    closedir($handle);
    return $array;
};

-------------------

Nu er mit spørgsmål så. Hvordan er rækkefølgen af de indlæste filer. Hidtil har jeg haft den opfattelse at det var efter oprettelse... alstå den ældste mappe i den ene ende og den nyeste i den anden. Men nu har jeg brugt funktionen et par gange og dette viser sig ikke altid at være korrekt.

Er der nogle der har en forklaring på hvordan den php læser en mappe og i hvilken rækkefølge!

/ Jacob
Avatar billede coderdk Praktikant
23. oktober 2006 - 11:43 #1
Den læser dem i den rækkefølge de er oprettet i filsystemet, så vidt jeg ved. Du kan evt køre sort() eller natsort() eller natcasesort() på array'et...
Avatar billede jacob_m Nybegynder
23. oktober 2006 - 11:53 #2
Jeg har nemlig også haft den opfattelse at det var efter oprettelse.. Men nu har jeg nemlig problemer med at mapperne hopper rundt..

Og der er ikke nogen rådtråd i det..
Avatar billede olebole Juniormester
23. oktober 2006 - 14:47 #3
<ole>

Fra http://dk2.php.net/manual/da/function.readdir.php:
    "Filnavnene bliver returneret i den rækkefølge som de er gemt i filsystemet."

- men det er jo heller ikke nødvendigvis oprettelses datoen. Det kunne jo også være seneste rettelses dato ... jeg ved det ikke positivt, men der _må_ være en 'rød tråd'  ;o)

/mvh
</bole>
Avatar billede coderdk Praktikant
23. oktober 2006 - 15:04 #4
Ja, det er selve oprettelsen, det har intet med timestamp'et der står i en dir f.eks. :)
Avatar billede jacob_m Nybegynder
24. oktober 2006 - 09:14 #5
Mange tak.. Arbejdede og lidt videre selv med det og det er helt rigtig som I siger.. Jeg ændrede f.eks. et filnavn og så var den nyest. Så i har helt ret. Det er efter sidste ændring i filsystemet.. om det så er oprettelse, opdatering, ændreing what ever... lige pånær læsning :-P.. Lig svar.. :D
Avatar billede jacob_m Nybegynder
31. januar 2007 - 14:16 #6
LUKKETID
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