Hallo Christian, hallo Leute, Am Samstag, 3. Mai 2003 13:39 schrieb Christian Schoepplein:
On Sam, Mai 03, 2003 at 12:05:45 +0200, Christian Boltz wrote:
Am Mittwoch, 30. April 2003 12:37 schrieb Christian Schoepplein:
Ich will ein php-Skript schreiben, das rekursiv alle Verzeichnisse Unterhalb eines Basisverzeichnisses nach Dateien mit einem bestimmten Muster durchsucht.
BTW: Lösung für Faule: $liste = `find .`; # Die ` sind Backticks, wie von der Bash gewohnt $filelist_array = explode( "\n", $liste );
Ist zwar nichts supertolles, funktioniert aber ;-)
OK, so werde ich's auch mal probieren. Danke ;-).
Meine Lösung ist nur in einem Verzeichnis mit "guten" Dateinamen [-._a-z0-9] empfehlenswert ;-) Wenn Du die Suchroutinen mit PHP zusammengebastelt hast, solltest Du meine Faulenzerlösung nicht einsetzen. Die macht nämlich vermutlich Probleme, wenn Zeilenwechsel und sonstige Überraschungen im Dateinamen vorkommen ;-)
[...] Mittlerweile funzts so weit, dass er eine Ebene tiefer als htdocs alles schön durchsucht,
wenn dort allerdings auch wieder Unterverzeichnisse auftauchen gibts ähnliche Probleme... Egal aber, mit ein wenig Zeit und wird das aber auch noch gelöst, [...]
Dieses Problem sollte recht einfach zu lösen sein, wenn Du Deinen Code zum Durchsuchen des Verzeichnisses in eine function packst und diese für Unterverzeichnisse rekursiv [1] aufrufst (Verzeichnisname als Parameter angeben). ACHTUNG: "." und ".." solltest Du wegen [1] ausschließen ;-) Eie weitere Stolperfalle könnten evtl. Symlinks sein, die aufs aktuelle Verzeichnis verweisen [2] - lässt sich wohl durch Festlegung einer max. Verzeichnistiefe oder durch explizites Testen, ob $verzeichnis ein Symlink ist, umgehen. Außerdem scheint es (im Kernel?) eine Begrenzung der max. Symlinktiefe zu geben, als letzten Rettungsanker ;-) Gruß Christian Boltz [1] vermeide möglichst, eine Endlosschleife zu erzeugen ;-) [2] cb@tux:/tmp/tmp-cb/test> ln -s . link cb@tux:/tmp/tmp-cb/test> ls -l insgesamt 0 lrwxrwxrwx 1 cb users 1 2003-05-03 23:07 link -> ./ cb@tux:/tmp/tmp-cb/test> cd link/ cb@tux:/tmp/tmp-cb/test/link> ls -l insgesamt 0 lrwxrwxrwx 1 cb users 1 2003-05-03 23:07 link -> ./ cb@tux:/tmp/tmp-cb/test/link> cd link/link/link/link/link/link/link/ cb@tux:/tmp/tmp-cb/test/link/link/link/link/link/link/link/link> -- Wenn du beim Autofahren ein "komisches Geraeusch" hoerst und stehen- bleibst (ohne das Geraeusch naeher identifizieren zu koennen!), dann schraubst du ja auch nicht einfach mal auf Verdacht an der Nockenwelle rum, wenn's doch nur am leeren Tank liegen koennte! [David Haller in suse-linux]