/ 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
Indlæse readdir() i array og sorter
Fra : Lars Justesen


Dato : 06-09-03 16:57

Hej,
Hvordan læser man resultatet af readdir() ind i et array og
sorterer det bagefter?

Jeg har følgende kode:

<?php

if ($handle = opendir('./')) {

while (false !== ($file = readdir($handle))) {
if ($file != "." && $file != ".." && $file !=
"upload_fil.php" && $file != "index.htm" && $file !=
"filupload.htm" && $file != "documentroot.php" && $file !=
"scandir.php") {
$size = filesize($file);
$type = filetype($file);
$location = "./$file";
$time = date ("F d Y H:i:s.", filemtime($file));

echo "<tr>\n";
echo "<td bgcolor=\"#DDDDDD\"><a
href=\"$location\">$file</a></td><td bgcolor=\"#EEEEEE\"> $type
</td><td> $size </td><td> $time </td>\n";
echo "</tr>\n";
}
}

closedir($handle);
}
?>

Jeg ville meget gerne have at listen med filer i dir'et blev
sorteret efter dato, med nyeste øverst.

håber på hjælp

mvh
Lars Justesen

--
Vil du lære at kode HTML, XHTML, CSS, SSI eller ASP?
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials

 
 
Dennis Møllegaard Pe~ (07-09-2003)
Kommentar
Fra : Dennis Møllegaard Pe~


Dato : 07-09-03 00:17

On Sat, 06 Sep 2003 15:56:52 +0000, Lars Justesen wrote:

> Hvordan læser man resultatet af readdir() ind i et array og
> sorterer det bagefter?

Jeg har lavet et eksempel her:
http://dennis.moellegaard.dk/v4/php/dirlist.php?source du kan se på
(den øverste linje med $page.. skal du bare ignorere)

Du er inde på det rigtige, og som du kan se, gør jeg det samme; propper
informationerne ind i et array, sorterer det og, afslutningsvis, viser
det. Hemligheden er usort() som lader dig definere en compare-funktion der
fortæller usort om $a er større end $b. dirsorter() er min implementation
på sådan en compare-funktion. Den er ganske simpel og det ville være
rimelig nemt at ændre det, så den sortere på et andet felt.

--
Dennis Møllegaard Pedersen,
PGP fingerprint = 5A23 2E7D 7F4F 7FBE 39AC CDEF 55A0 FF70 87C0 59D9


Lars Justesen (07-09-2003)
Kommentar
Fra : Lars Justesen


Dato : 07-09-03 10:29

Dennis Møllegaard Pedersen wrote in dk.edb.internet.webdesign.serverside.php:
> On Sat, 06 Sep 2003 15:56:52 +0000, Lars Justesen wrote:
>
> > Hvordan læser man resultatet af readdir() ind i et array og
> > sorterer det bagefter?
>
> Jeg har lavet et eksempel her:
> http://dennis.moellegaard.dk/v4/php/dirlist.php?source du kan se på
> (den øverste linje med $page.. skal du bare ignorere)
>
> Du er inde på det rigtige, og som du kan se, gør jeg det samme; propper
> informationerne ind i et array, sorterer det og, afslutningsvis, viser
> det. Hemligheden er usort() som lader dig definere en compare-funktion der
> fortæller usort om $a er større end $b. dirsorter() er min implementation
> på sådan en compare-funktion. Den er ganske simpel og det ville være
> rimelig nemt at ændre det, så den sortere på et andet felt.
>
> --
> Dennis Møllegaard Pedersen,
> PGP fingerprint = 5A23 2E7D 7F4F 7FBE 39AC CDEF 55A0 FF70 87C0 59D9
>
Takker 1000 gange for det fine exempel! Det er helt sikkert noget jeg kan
bruge! TAK

mvh
Lars

--
Vil du lære at kode HTML, XHTML, CSS, SSI eller ASP?
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials

Martin Sveegaard (07-09-2003)
Kommentar
Fra : Martin Sveegaard


Dato : 07-09-03 20:16

On Sat, 6 Sep 2003 15:56:52 +0000 (UTC), Lars Justesen
<webmaster@team-urin.dk> wrote:

>Hej,
>Hvordan læser man resultatet af readdir() ind i et array og
>sorterer det bagefter?
<snip kode>
>Jeg ville meget gerne have at listen med filer i dir'et blev
>sorteret efter dato, med nyeste øverst.
>
>håber på hjælp
>
>mvh
>Lars Justesen

Du kan smide alle data i array's og sortere 'time' array'et med
arsort() der bibeholder nøglerefarencen.

<table>
<?php
$str = "";
if ($handle = opendir('./')) {
while (false !== ($file = readdir($handle))) {
if ($file != "." && $file != ".." && $file !=
"upload_fil.php" && $file != "index.htm" && $file !=
"filupload.htm" && $file != "documentroot.php" && $file !=
"scandir.php") {
$item[] = $file;
$size[] = filesize($file);
$type[] = filetype($file);
$location[] = "./$file";
$time[] = filemtime($file);
}
}
closedir($handle);
}
arsort($time);
foreach ($time as $key=>$tid) {
   $str .= "<tr>\n";
   $str .= "<td bgcolor=\"#DDDDDD\"><a
href=\"".$location[$key]."\">";
   $str .= $item[$key]."</a></td><td bgcolor=\"#EEEEEE\"> ";
   $str .=
$type[$key]."</td><td>".$size[$key]."</td><td>".date("F d Y
H:i:s.",$tid);
   $str .= "</td>\n</tr>\n";
}
echo $str;
?>
</table>
--
Med Venlig Hilsen
c",) Martin S

Søg
Reklame
Statistik
Spørgsmål : 177559
Tips : 31968
Nyheder : 719565
Indlæg : 6408935
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste