22. maj 2005 - 18:19
Der er
10 kommentarer og 1 løsning
Sortering af mapper og filer
Jeg skal have sorteret outputtet fra dette script. Det udskriver indholdet af en mappe, hvorefter man kan klikke sig frem og tilbage mellem file rog mapper. Problemet er bare at det vist bliver sorteret automatisk efter dato. <? if (!isset($dir)) $dir = "./filer"; echo "<img src=\"../img/filtyper/mappe.gif\"> $dir"; echo "<hr>"; $handle = opendir($dir); while (false !== ($file = readdir($handle))) { if ($file != "." && $file != "..") { if (is_dir($dir."/".$file)) { $ico = "mappe.gif"; echo "<img src=\"../img/filtyper/$ico\"> <a href=\"?dir=$dir/$file\">$file</a><br>"; } else { $type = strtolower(substr($file,-3)); $ico = ''.$type.'.gif'; echo "<img src=\"../img/filtyper/$ico\"> <a href=\"$dir/$file\">$file</a><br>"; } } } closedir($handle); ?> Hvordan får jeg dette sorteret med mapper først og derefter filer, og både mapper og filer i alfabetisk rækkefølge.
Annonceindlæg fra Admin By Request
Hvad med: <? if (!isset($dir)) $dir = "./filer"; echo "<img src=\"../img/filtyper/mappe.gif\"> $dir"; echo "<hr>"; $handle = opendir($dir); $filer = array(); $mapper = array(); while (false !== ($file = readdir($handle))) { if ($file != "." && $file != "..") { if (is_dir($dir."/".$file)) { $mapper[] = $dir . '/' . $file; } else { $filer[] = $dir . '/' . $file; } } } closedir($handle); natsort( $mapper ); natsort( $filer ); foreach ( $mapper as $mappe ) { echo "<img src=\"../img/filtyper/mappe.gif\"> <a href=\"?dir=$mappe\">$mappe</a><br>"; } foreach ( $filer as $fil ) { $type = strtolower(substr($fil,-3)); $ico = ''.$type.'.gif'; echo "<img src=\"../img/filtyper/$ico\"> <a href=\"$fil\">$fil</a><br>"; } ?>
Evt. lav en basename($fil) og basename($mappe) når du skriver dem ud ;)
Jo den er rigtig fin... ./filer/for05A2.xls ./filer/linprog.pdf ./filer/linprog.xls Men hvordan vil du lave sådan at det kun er $file der bliver vist som navn og ikke $mappe som referer til hele stien. Det er jo kun mappenavnet/filnavnet som skal vises...
Det var det jeg mente med min sidste besked: echo "<img src=\"../img/filtyper/$ico\"> <a href=\"$fil\">" . basename($fil) . "</a><br>";
Nu er den næsten perfekt - det er bare dejligt. En sidste ting inden mine point falder ud :-) Den lister først filer med store bogstaver og derefter med små. Altså ex: Abcderf Bcdefghijk Cqsderf abcdefg bghtkkt Først alfabetisk med store, derefter alfabetisk med små...
10000000000000 tak !!!!!!!!!!!!! Det var bare en skøn hjælp.... pyh endelig fik jeg det færdig :-)
Ah, ja, lav natsort() om til natcasesort()
Men vil gerne hvis du lige kan hjælpe med en 100 korrekt sortering alfabetisk...
Uhm, hvad er ukorrekt ved den nu? Hvis du ændrer: natsort( $mapper ); natsort( $filer ); til: natcasesort( $mapper ); natcasesort( $filer ); Så burde det se rigtigt ud...
Tusind tak :-) Helt perfekt :-)
Vi tilbyder markedets bedste kurser inden for webudvikling