dico Skrevet 19. juni 2009 Del Skrevet 19. juni 2009 Jeg har mikset sammen et lite "directory of" script. Men jeg ønsker å gruppere mappene øverst. Nå sorteres alt etter alfabetisk rekkefølge. Kan noen hjelpe meg med dette? if (isset($_GET['dir'])) { $subfolder = $_GET['dir']; } $count = "0"; $getDir = opendir(".$homeDir/$subfolder"); if (isset($_GET['dir'])) { echo "<img src='./images/icons/folder.gif'> <font size='4'><a href='java script:history.go(-1)'>..</a></font><br>"; } while($filename = readdir($getDir)) { if ($filename[0]!= "." && $filename[0]!= ".." ) { // 1. The "explode/end" approach $ext = end(explode('.', $filename)); // 2. The "strrchr" approach $ext = substr(strrchr($filename, '.'), 1); // 3. The "strrpos" approach $ext = substr($filename, strrpos($filename, '.') + 1); // 4. The "preg_replace" approach $ext = preg_replace('/^.*\.([^.]+)$/D', '$1', $filename); // 5. The "never use this" approach // From: http://php.about.com/od/finishedphp1/qt/file_ext_PHP.htm $exts = split("[/\\.]", $filename); $n = count($exts)-1; $ext = $exts[$n]; if ($n == 0) { echo "<img src='./images/icons/folder.gif'> "; } elseif ($ext == "pdf") { echo "<img src='./images/icons/pdf.gif'> "; } elseif ($ext == "txt") { echo "<img src='./images/icons/text_plain.gif'> "; } elseif ($ext == "pps") { echo "<img src='./images/icons/ppt.gif'> "; } elseif ($ext == "doc") { echo "<img src='./images/icons/text.gif'> "; } elseif ($ext == "jpg") { echo "<img src='./images/icons/image.gif'> "; } elseif ($ext == "JPG") { echo "<img src='./images/icons/image.gif'> "; } if ($n == 0) { if (isset($_GET['dir'])) { echo "<a href=\"?meny=dokumentasjon&side=javascript_input2&dir=$subfolder/$filename\">$filename</a><br>"; } else { echo "<a href=\"?meny=dokumentasjon&side=javascript_input2&dir=$filename\">$filename</a><br>"; } } if ($n == 1) { echo "<a href=\"#\" onclick=\"AddItem('$subfolder/$filename');\">$filename</a> [ <a href='.$homeDir/$subfolder/$filename'>Åpne fil</a> ]<br>"; } } } closedir($getDir); Lenke til kommentar
AlecTBM Skrevet 19. juni 2009 Del Skrevet 19. juni 2009 Med readdir vet jeg ikke om noen mulighet, men med scandir er det mulig Lenke til kommentar
dico Skrevet 23. juni 2009 Forfatter Del Skrevet 23. juni 2009 Nedenfor er en kode jeg fant på php.net, koden skriver ut arrayet. Men hvordan får jeg mappene som klikkbar html? <?php function rec_scandir($dir) { $files = array(); if ( $handle = opendir($dir) ) { while ( ($file = readdir($handle)) !== false ) { if ( $file != ".." && $file != "." ) { if ( is_dir($dir . "/" . $file) ) { $files[$file] = rec_scandir($dir . "/" . $file); }else { $files[] = $file; } } } closedir($handle); return $files; } } function cmp($a, $b) { if ( is_string($a) && is_string($b) ) { return strcmp($a, $b) > 0 ? 1 : -1; }elseif ( is_int($a) && is_int($b) ) { return $a > $b ? 1 : -1; }elseif ( is_int($a) && is_string($b) ) { return 1; }elseif ( is_string($a) && is_int($b) ) { return -1; }else { return 0; } } function array_ukmultisort(&$arr, $func) { uksort($arr, $func); while ( list($key, $val) = each($arr) ) { if ( is_array($val) ) { array_ukmultisort($arr[$key], $func); } } } $dir = rec_scandir("./files"); array_ukmultisort($dir, "cmp"); echo "<pre>"; print_r($dir); echo "</pre>"; ?> Lenke til kommentar
AlecTBM Skrevet 23. juni 2009 Del Skrevet 23. juni 2009 vanlige HTML linker <a href=""> Du kan vell HTML ja? Lenke til kommentar
fhugas Skrevet 25. juni 2009 Del Skrevet 25. juni 2009 Skrev det om litt jeg, har ikke sjekket om det faktisk fungerer Men skal ikke være all verden og debuge La til noe eksperimentell whitespace funksjonalitet der også slik at du får linkene under hvert directory rykket inn X antall hakk, finnes sikkert en bedre måte, men gikk fort i svingene der. function rec_scandir($dir, $level=0) { $whitespace = ' '; $ws = ''; while($i=0 < $level) { $ws .= $ws; } $files = ''; if ($handle = opendir($dir)) { while (($file = readdir($handle)) !== false) { if ($file != ".." && $file != ".") { if (is_dir($dir . "/" . $file)) { $files .= $ws.$dir."/".$file."<br />\n"; $files .= rec_scandir($dir . "/" . $file, $level+1); } else { $files .= $dir."/".$file."<br />\n"; } } } closedir($handle); return $files; } } Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå