/ Forside / Teknologi / Udvikling / PHP / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
PHP
#NavnPoint
rfh 3959
natmaden 3372
poul_from 3310
funbreak 2700
stone47 2230
Jin2k 1960
Angband 1743
Bjerner 1249
refi 1185
10  Interkril.. 1146
Sortering af liste over mappeindhold
Fra : Brian Emilius


Dato : 05-12-04 11:18

Hej NG

Dette script kender I vel allesammen:

if ($handle = opendir('../../data/filer')) {
while (false !== ($file = readdir($handle))) {
if ($file != "." && $file != "..") {
echo "$file<br>\n";
}
}
closedir($handle);
}

Men hvordan får jeg det til at sortere listen ASC eller DESC?

Venlig hilsen
Brian Emilius



 
 
Peter Brodersen (05-12-2004)
Kommentar
Fra : Peter Brodersen


Dato : 05-12-04 11:50

On Sun, 5 Dec 2004 11:18:02 +0100, "Brian Emilius" <msn@emilius.dk>
wrote:

>Men hvordan får jeg det til at sortere listen ASC eller DESC?

I stedet for at echo'e $file ud, så tilføj hver $file til et array,
sortér arrayet efterfølgende med sort() eller en lignende
sorteringsfunktion, og print så værdierne i arrayet ud.

glob() er i øvrigt en mere simpel måde at få en liste over filer, end
at skulle rode med filhandles. Så i en helt simpel udgave:

<?php
$files = glob('../../data/filer/*');
natcasesort($files);
print implode('<br>',$files);
?>

--
- Peter Brodersen

Jesper Laursen (05-12-2004)
Kommentar
Fra : Jesper Laursen


Dato : 05-12-04 11:54

On 05/12/04 11:18, Brian Emilius wrote:
> Men hvordan får jeg det til at sortere listen ASC eller DESC?

Du smider det hele ind i et array først - og derefter bruger du en af de
mange sort-funktioner php har.

Til sidst løber du så listen igennem igen, f.eks. med foreach(), for at
printe alle elementer ud.

--
Jesper Laursen
http://www.lauer.dk/
http://www.fairweb.dk/


Brian Emilius (05-12-2004)
Kommentar
Fra : Brian Emilius


Dato : 05-12-04 19:59

"Jesper Laursen" <lauer@php.net> skrev i en meddelelse
news:BDD8A73E.574D%lauer@php.net...
> Du smider det hele ind i et array først - og derefter bruger du en af de
> mange sort-funktioner php har.
>
> Til sidst løber du så listen igennem igen, f.eks. med foreach(), for at
> printe alle elementer ud.

Det har jeg nu gjort (brugte natcasesort()), men listen bliver ikke sorteret
korrekt - fx optræder der nogle filer, der starter med F, så kommer R og så
kommer F igen.
Hvordan kan det være?

Venlig hilsen
Brian Emilius



Peter Brodersen (05-12-2004)
Kommentar
Fra : Peter Brodersen


Dato : 05-12-04 21:11

On Sun, 5 Dec 2004 19:59:21 +0100, "Brian Emilius" <msn@emilius.dk>
wrote:

>Det har jeg nu gjort (brugte natcasesort()), men listen bliver ikke sorteret
>korrekt - fx optræder der nogle filer, der starter med F, så kommer R og så
>kommer F igen.
>Hvordan kan det være?

Ligger siden online, så man kan se den? Eller kan du klipkopiere
outputtet (fra HTML-kildeteksten) ind her?

Der er ikke en fil, der starter med mellemrum eller lignende?

--
- Peter Brodersen

Brian Emilius (07-12-2004)
Kommentar
Fra : Brian Emilius


Dato : 07-12-04 15:44

"Peter Brodersen" <usenet@ter.dk> skrev i en meddelelse
news:covq17$7at$1@katie.ellegaard.dk...

> Ligger siden online, så man kan se den? Eller kan du klipkopiere
> outputtet (fra HTML-kildeteksten) ind her?

Jeg har brugt natcasesort():

avlshanner.doc<br />
koebskontrakt.doc<br />
opdraet_annonce.doc<br />
parring_stamtavle_rekv.doc<br />
parringskontrakt.doc<br />
titeltagere.doc<br />
udenland_udstilling.doc<br />
aarets_kat.doc<br />
breedcouncils.doc<br />
FD_Disciplinarnavnet_2004.doc<br />
FD_Disciplinarnavnet_2004.pdf<br />
FIFe_FDAvlsogregistreringsregler_2004.doc<br />
regler.zip<br />
FU_REF_040511.pdf<br />

> Der er ikke en fil, der starter med mellemrum eller lignende?

Nix...

Venlig hilsen
Brian Emilius



Søg
Reklame
Statistik
Spørgsmål : 177552
Tips : 31968
Nyheder : 719565
Indlæg : 6408847
Brugere : 218887

Månedens bedste
Årets bedste
Sidste års bedste