Ordner auslesen und Dateien nach Alphabet sortieren

diggakool

Mitglied
Moin,

ich versuche die ausgelesenen Dateien nach Alphabet zu sortieren. Habe es mit sort() versucht aber bin leider nicht weiter gekommen. Vielleicht habt ihr ja einen Tipp wo ich ansetzen muss.

Hier ist mein Script:

PHP:
// Funktion
function list_dir($dir_handle,$path)
{
	global $hide;
	
	$htaccess = file_get_contents('.htaccess'); 
	$pattern = '/^[[:space:]]*AddDescription[[:space:]]+"([^"]+)"[[:space:]]+([^[:space:]]+)[[:space:]]*$/im';
	preg_match_all($pattern, $htaccess, $results, PREG_SET_ORDER);
	 
	$fileDescriptions = array();
	foreach($results as $result){
	$fileDescriptions[$result[2]] = $result[1];
	}  		  	
	
    echo "<ul>";
    //running the while loop
    while (false !== ($file = readdir($dir_handle))) {
        $dir =$path.'/'.$file;
        if(is_dir($dir) && $file != '.' && $file !='..' && !in_array($file, $hide)) // Falls dies ein Ordner ist
        {
			$fileDescription =  (array_key_exists($file, $fileDescriptions))? $fileDescriptions[$file] : '';
            $handle = @opendir($dir) or die("unable to open file $file");
            echo "<li><h2><img src='folder.png' align='absbottom'/> $file <span class='beschreibungen'>$fileDescription</span> </h2><div class='togglebox'>";
            list_dir($handle, $dir); // startet Funktion erneut im Innern des Ordners
        }
        elseif($file != '.' && $file !='..' && !in_array($file, $hide)) 
        
		{
			$size = ceil(filesize($path."/".$file)/1024);	
			$dateiinfo = pathinfo($path."/".$file);	
			$fileDescription =  (array_key_exists($file, $fileDescriptions))? $fileDescriptions[$file] : '';
            echo "<li><a href='downloadstats.php?User=".$_GET['ajaxuser']."&Downloadpfad=".$dateiinfo['dirname']."&Downloaddatei=".$dateiinfo['basename']."&Datum=".date("d.m.Y - H:i")."' id='dateiname'>$file</a></li>\n"."<div id='dateiinfos'>"."(Dateiformat: ".$filetime.$dateiinfo['extension']." | Dateigröße ".$size."kb)<br><span class='beschreibungen2'><br clear='all'>".$fileDescription."</span></div><br clear='all' />";
        }
    }
    echo "</ul>";

    // Ordner schliessen
    closedir($dir_handle);
}

// von hier aus relativer Pfad zum Ordner angeben
$path = "../../../d-pub/";

// Ordner öffnen, Funktion starten
$dir_handle = @opendir($path) or die("Unable to open $path");
list_dir($dir_handle,$path);

Viele Grüße
 
Wie wäre es, wenn du einfach [phpf]scandir[/phpf] verwendest:
PHP:
// ...
$contents = scandir($path);
sort($contents);

foreach ($contents as $entry)
{
  // und so weiter
}
 
Moin,

vielen Dank für deine Antwort.

So richtig verstehe ich nicht ganz was du meinst.
Müsste ich dann nicht alles umprogrammieren oder wo muss ich die Abfrage zwischenschreiben?

Viele Grüße
 
Zuletzt bearbeitet:

Neue Beiträge

Zurück