Liste von Unterordnern
Constantin Kiesling
- php
Hallo liebe Community!
Ich brauche mal wieder Tipps... Ich würde gerne ein Php Script schreiben, dass alle Unterordner des Verzeichnisses anzeigt, in dem es liegt. Die liste soll sich also einfach automatisch erweitern, wenn neue Unterordner dazukommen. Die Ausgabe der Liste sollte so sein, dass man einfach über Links zu allen Unterordnern gelangen kann.
Wie gehe ich das am besten an? ICh hab zwar im PHP-MAnual gestöbert, aber bin jetzt nur noch verwirrter...
Ich würde mich über eure Hilfe wirklich sehr freuen!
MfG, Consti
Hiho
Ungeteste und ohne Gewähr:
$ordner = opendir('dir');
while($in = readdir($ordner)){
if(is_dir($in)){
echo $in . "<br>";
}
}
Muss wahrscheinlich noch verbessert werden, aber ein Anfang sollte es sein
Hi!
$ordner = opendir('dir');
while($in = readdir($ordner)){
if(is_dir($in)){
echo $in . "<br>";
}
}
Es funktioniert, wenn ich statt "dir" einen Punkt (".") einsetze, weil ja das Script im selben Ordner liegt, von dem die Unterverzeichnisse bestimmt werden sollen.
Allerdings gibt die Schleife am Anfang auch die Werte "." und ".." aus, kann ich die einfach mit einer If-Bedingung entfernen?
Und nach welchem Muster werden die Ergebnisse geordnet? Nach meinen Tests würde ich sagen nach dem Entstehungsdatum, ist das richtig?
Schon mal vielen Dank für die bisherige Hilfe!
MfG,
Consti
Moin,
Allerdings gibt die Schleife am Anfang auch die Werte "." und ".." aus, kann ich die einfach mit einer If-Bedingung entfernen?
if($in != "." && $in != "..") echo $in."<br>";
Und nach welchem Muster werden die Ergebnisse geordnet?
Gar nicht. Sie kommen so rein wie das Betriebssystem sie von Platte liest.
Nach meinen Tests würde ich sagen nach dem Entstehungsdatum, ist das richtig?
Jain, zunächst werden sie natürlich mehr oder weniger nach Erstellungsdatum auf der Platte liegen. Das kann sich aber ganz schnell ändern, wenn man Sachen löscht oder umherverschiebt.
BTW: Das hätte dir beides die Dokumentation zu readdir() in weniger als 30s sagen können.
Und nach welchem Muster werden die Ergebnisse geordnet? Nach meinen Tests würde ich sagen nach dem Entstehungsdatum, ist das richtig?
Wenn du die Ergebnisse anders ordnen wilst, dann würde ich sie, statt dem echo erst mal in einen array packen, diesen dann sortieren und dann alles wieder ausgeben
Marc
Wenn du die Ergebnisse anders ordnen wilst, dann würde ich sie, statt dem echo erst mal in einen array packen, diesen dann sortieren und dann alles wieder ausgeben
Wir kann ich denn Daten aus einer Schleife in einen Array packen? Geht das überhaupt? Sorry für meine Dummheit, aber ich kanns halt nicht besser.
lG,
Consti
Hallo Consti,
Ich brauche mal wieder Tipps... Ich würde gerne ein Php Script schreiben, dass alle Unterordner des Verzeichnisses anzeigt, in dem es liegt.
Vielleicht hilft Dir das weiter:
"Wie kann ich den Inhalt eines Verzeichnisses samt dem Inhalt aller Unterverzeichnisse ausgeben?"
http://www.dclp-faq.de/q/q-code-verzeichnis.html
Eine andere Moeglichkeit, die auf den meisten Apaches funktionieren duerfte (selbst wenn kein PHP vorhanden ist):
Keine index.html (oder wie sie bei Dir halt heissen muessen) in die betreffenden Verzeichnisse stellen.
Dann macht der Apache selbst die Auflistungen, und zum Teil kann man auch das "Layout" etwas beeinflussen. Zudem ist durch Klick auf den entsprechenden Spaltentitel ein Sortieren nach Dateiname, Datum, Groesse ganz bequem moeglich.
Stichworte: mod_autoindex, fancy indexing
Beschreibung:
http://httpd.apache.org/docs/mod/mod_autoindex.html
Und so sieht's aus:
http://www.apache.org/dist/
HTH, mfg
Thomas