Verzeichnisse auslesen, sortieren usw.

Ostfuchs84

Grünschnabel
hallo leute ...
ja ich hab mal wieder ein problemchen ... weiß grad überhaupt nicht weiter ...
mit dem folgenden code wird ein verzeichniss mit unterverzeichnissen ausgelesen.
PHP:
function structur($path, $free = 0, $sub=FALSE) {
  $handle = opendir($path);
  while ($file = readdir($handle)) {
    if($file != "." && $file != ".." && $file != "index.php" && $file != ".path.gif" && $file != ".file.gif") {
      if(is_dir($path."/".$file)) {
        echo("                        <tr><td><font face=\"verdana\" size=\"1\"><span style=\"padding-left: ".$free."\"><img src=\".path.gif\" width=\"12\" align=\"absmiddle\"><b>".$file."</b></span></font></td></tr>");
        structur($path."/".$file, $free+15, TRUE);
      } else {
        $link = $path."/".$file;
        echo("                        <tr><td><font face=\"verdana\" size=\"1\"><span style=\"padding-left: ".$free."\"><img src=\".file.gif\" width=\"12\" align=\"absmiddle\"><a href=\"index.php?load=".substr($link, 3)."&name=".$file."\">".$file."</a></span></font></td></tr>");
      }
    }
  }
  closedir($handle);
}
soweit so gut ... die Unterverzeichnisse sollen aber ganz oben stehen und anschließend sollen auch dateien usw. alphabetisch geordnet werden. so wie im windows-explorer halt :)

weiß ja jemand, wie man das machen könnte ... ?
 
Du könntest dir erst den ganzen Inhalt in ein Array schreiben und dann mittels [phpf]sort[/phpf] die Dateien Sortieren. Ausserdem könntest du dir bei dem Durchlauf der Schleife mittels [phpf]is_dir[/phpf] die Verzeichnisse raussortieren und diese in ein extra Array packen das du dann zuerst ausgibst.
 
hmm ja da seh ich net durch ...... naja .. hat jemand son script, womit man nen verzeichnissbaum erstellen kann? daraus kann ich mir meine dann sicher basteln *G
 
Wo ist denn das Problem?
PHP:
<?php

//...
$dir = array ();
$datei = array ();

while ($file = readdir ($handle))
{
    if (is_dir ($file)) //Überprüfen ob Datei oder Verzeichniss
    {
        $dir[] = $file;
    }
    else
    {
        $datei[] = $file;
    }
}

//Arrays Sortieren
sort ($dir);
sort ($datei);

//Directory Ausgeben
foreach ($dir as $sdir)
{
    echo $sdir . "<br />\n";
}

//Dateien Ausgeben
foreach ($datei as $sdatei)
{
    echo $sdatei . "<br />\n";
}
?>
 
Freucht mich das ich dir helfen konnte und wenn du das Thema jetzt noch als erledigt makierst dann sind wir alle glücklich;).
 
Zurück