09. oktober 2007 - 09:28
Der er
8 kommentarer og 1 løsning
Sortere udskrift(echo) efter kriterier
Jeg har en side som læser et givent dir igennem og lister hvilke filer der er. if (@strtolower($ext["extension"]) == "") { // tjekker at det er en mappe echo"<h1><a href=\"". $dir .\"list.php?mappe=".$files ."\">".$files."</a></h1>\n"; } elseif (@strtolower($ext["extension"]) != "php") { echo"<p><a href=\"". $dir . $files ."\">".$files."</a></p>\n"; } Dette giver to forskellige udskrifter, hvilket er som det skal være. Jeg vil dog gerne kunne sortere, så alle "mapperne" bliver linket øverst, og derefter resten af filerne. Hvordan kan jeg gøre det?
Annonceindlæg fra DE-CIX
09. oktober 2007 - 12:36
#1
Er det ikke bare at hente alle mapperne ud først, og derefter gøre det samme bare med filer? Du kan forresten bruge filetype() til at finde type :) Mapper returnerer 'dir' og filer 'file' :)
09. oktober 2007 - 12:43
#2
Uhh, det vidste jeg ikke. Så jeg kan lave en if filetype(dir) fx? Det kunne gøre det hele en smule mere overskueligt. Men hvordan vil du trække mappen ud først? Umiddelbart ville jeg tro at den burde gøre det, de bliver trækket ud gennem if..?
09. oktober 2007 - 13:20
#3
Altså nu ved jeg ikke hvordan resten af din kode ser ud, kan du ikke prøve at smide den herind? Og filetype( 'sti' ), sådan virker den.
09. oktober 2007 - 13:26
#4
$mappe = $_GET["mappe"]; if ($mappe != "") { $dir = "$mappe/"; } else { $dir = ""; } $sti = dirname($_SERVER["DOCUMENT_ROOT"] . $_SERVER["PHP_SELF"]) ."/$mappe/"; $path = opendir($sti); while (false !== ($files = readdir($path))) { // tjekker dir igennem $ext = pathinfo($files); // finder filtype if (@strtolower($ext["extension"]) == "") { // tjekker at det er en mappe echo"<h1><a href=\"". $dir .\"list.php?mappe=".$files ."\">".$files."</a></h1>\n"; } elseif (@strtolower($ext["extension"]) != "php") { echo"<p><a href=\"". $dir . $files ."\">".$files."</a></p>\n"; } Jeg har lige prøvet med filetype(dir), og det virkede helt fint. Men kun i "første led". Meningen er at man oss skal kunne se hvad der er inde i mapperne. Derudover skal funktionen ikke vise php-filer.. Så tror bare jeg beholder den som den er. :) Medmindre man kan lave en funktion der sortere på den måde..
09. oktober 2007 - 13:53
#5
Det jeg mente var noget ala.: $files = readdir( $path ); while ( $files !== false AND filetype( $files ) == 'dir' ) { echo"<h1><a href=\"". $dir .\"list.php?mappe=".$files ."\">".$files."</a></h1>\n"; } while ( $files !== false AND filetype( $files ) == 'file' AND getext( $files ) != 'php' ) { echo"<h1><a href=\"". $dir .\"list.php?mappe=".$files ."\">".$files."</a></h1>\n"; } Den er ikke testet, har ikke leget så meget med opendir/readdir, men det var noget i den stil jeg mente :) Så skal du bare lige lave en funktion som checker ext :)
09. oktober 2007 - 14:56
#6
Aarh, på den måde. Jeg prøver at lege lidt med det. :)
09. oktober 2007 - 15:13
#7
Det virker ikke lige som det skal. Bliver blot ved med at poste det første mappenavn. Men prøver at lege lidt videre med det, og se om jeg kan få det til at virke.
11. oktober 2007 - 09:07
#8
Har stadig ikke fundet en løsning. Så andre der skulle have et råd, er velkomne til at kommentere...
08. november 2007 - 09:04
#9
lukker ;)
Vi tilbyder markedets bedste kurser inden for webudvikling