Verzeichnisse auslesen mit unterorndern...

Ich wuerde die beiden IFs zusammenpacken, so sparst Du Dir dann auch das continue.
Ausserdem wird bei Dir folders() immer aufgerufen, auch wenn es sich beim gefundenen Eintrag um eine Datei handelt, was ja nicht gerade viel Sinn macht, oder?

Anhand Deines Codes nehme ich mal an, dass nur Verzeichnisse ausgegeben werden sollen und keine Dateien. Dementsprechend wuerde ich den Code so gestalten:

PHP:
function folders($directory)
{
 $opendir=opendir($directory);
 while($dir=readdir($opendir))
 {
  if (($dir!='.') && ($dir!='..') && (is_dir($directory.$dir)))
  {
   echo '<option value="'.$directory.$dir.'">'.$dir.'</option>';
   folders($directory.$dir.'/');
  }
 }
 closedir($opendir);
}
 
Danke für deine Antwort...

Soweit war ich selber bereits (abgesehen von den IF() Sachen) :)

Was ich noch brauche ist, das die jeweiligen vorigen Ordner noch im selben Entry angezeigt werden.

Im Moment sieht es so aus:

./
./test/
./a/
./b/

Aber es sollte so sein:

./
./test/
./test/a/
./test/a/b/

Sorry, wenn ich was unverstänlich geschrieben habe ;)

Danke
 
Wenn Du diese Zeile
PHP:
   echo '<option value="'.$directory.$dir.'">'.$dir.'</option>';
gegen diese
PHP:
   echo '<option value="'.$directory.$dir.'">'.$directory.$dir.'</option>';
austauschst, dann wird nicht nur a sondern test/a ausgegeben.
 
:) Das ist sehr gut...

Aah, noch eine letzte Frage:

Es wird der absolute Pfad angezeigt, wie kann ich es ab dem "neuen" Ordner anzeigen lassen?

Also ab dem Order, wo ich beginne...
 
Zum Beispiel indem Du beim ersten Aufruf Deiner Funktion den relativen Pfad uebergibst.
Aber auch das kann durchaus noch einiges vor dem Verzeichnisnamen mitschleppen.

Das Problem ist, dass Du durch die Rekursion nicht so einfach feststellen kannst welches denn Dein "Hauptverzeichnis" ist. Dafuer muesstest Du eine Zaehlvariable mitschleppen um festzustellen auf welcher Ebene im Baum Du Dich befindest. Dann koenntest Du alles was unterhalb der 1. Ebene kommt abschneiden.
 
Genau sowas habe ich mir auch gedacht...
Wie sollte denn im besten Falle aussehen?

Ich habe da an explode() gedacht und dann jeweils mit count wiederholen...aber irgendwie gibt mir das Script dann nicht aus... :(
 
Zurück