Hallo Christian, hallo Leute, 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 ;-)
Ich probier das gerade mit htdocs als Basisverzeichnis aus. Allerdings bekomme ich folgende Fehlermeldung, sobald mein Skript versucht Verzeichnisse unterhalb htdocs zu durchwühlen:
Warning: stat failed for cd.php (errno=2 - No such file or directory) in /usr/local/httpd/htdocs/suchen.php on line 21
cd.php ist eine Datei im Verzeichnis cd, das direkt unter htdocs liegt, auf diese Datei kann ich ohne Probleme zugreifen, wenn ich z.B. die URL direkt im Browser eintrage. In Zeile 21 meines php-Skripts verwende ich folgenden Befehl:
$verz = opendir($zeile);
Und was sagt echo $zeile ? Ich habe das Gefühl, dass da ein _Datei_name drinsteht, obwohl ein _Verzeichnis_name erwartet wird.
Das Problem scheint zu sein, dass das opendir() von php nicht auf andere Verzeichnisse außer htdocs angewendet werden kann, in diese Verzeichnisse gelange ich aber ohne Probleme direkt über den Browser.
Kann es sein, dass Du Dich in der PHP-Config mit open_basedir irgendwo in den htdocs eingesperrt hast? Wenn Du den Fehler nicht findest, schick doch mal einen etwas größeren Ausschnitt aus dem Script, damit man alles im Kontext überprüfen kann. Da der Fehler in Zeile 21 auftaucht, würden sich die ersten 25 Zeilen anbieten ;-) Gruß Christian Boltz -- blubb || { echo "Autsch" >&2; exit 1; } [David Haller in suse-linux über ein misslungenes Script]