Dateien in verzeichnsi einlesen

NomadSoul

Erfahrenes Mitglied
Wie kann ich mit PHP die Daeien eines Verzeichnisses einlesen?
ich habe mir die Klasse im Tutorials Bereich angeschaut werd aber beigott nich so ganz schlau draus.
mit $opendir(verzeichnis) kann Ich doch Verzeichnisse öffnen oder?
und wie mach ichdann weiter
ich brauch nur die Dateinamen und ggf die Größe. Wie löse ich das ?
 
Brauchst du auch noch Unterverzeichnisse ?
Naja, wie auch immer ;)
Ich habe hier mal ne kleine Funktion rausgekramt, die die Verzeichnissstruktur (ekliges Wort - 3*s) ab einem bestimmten Ordner ausliesst.

PHP:
function echodir($path = ".")
{
    $dir = dir($path);
    while(false !== ($file = $dir->read()))
    {
    	if(("."  == $file) OR (".." == $file))
    		continue;
    	if(is_dir($path."/".$file)) {
    		echo($path."/<br>\n");
    		echodir($path."/".$file);
    	}
    	else
    	{
    		echo(" ".$file."<br>\n");
    	}
    }
$dir->close();
}

Wenn du nur die ei einzelnen Dateien in dem verzeichniss auslesen willst, musst du einfach die Rekursion...
PHP:
echodir($path."/".$file);

...da raus nehmen.
Naja, neben dem Anzeigen der Dateinamen lässt sich das Ganze noch beliebig erweitern.
 
Und was machst du, falls das Script mal auf einer Windows Maschine laufen sollte?
Das find ist ja meiner Meinung nach ein Befehl, der durch das exec in die "Console" übergeben wird.

Also Betriebsystemabhängig?! Wenn ja...dickes, fettes -
 
also erstmal Danke für die Patzige antwort Namensgenosse.

die Funktion verstehe ich noch nicht so ganz, könntest Du sie mir bitte bischen erklären?
Ich habs jetzt mithilfe des php Manuals geschaft mich intressiert trozdem noch wie die Funktion funktioniert @lars ja meine Dich
 
Zuletzt bearbeitet:
Meinst du mich oder Patrick?

Wills dir gerne beschreiben, wenn du mich meinst ;)

Vorher noch eine Gegenfrage:
Willst du die gesammte Verzeichnissstruktur unter dem Ordner haben, oder nur die Dateien in dem Ornder ?

PS. Bitte tu mir den Gefallen und korrigiere deine Fehler in den Posts bevor due sie abschickst. Musst ja nicht versuchen schneller zu tippen als du kannst ;)
Brauchst dich echt nicht überschlagen, hast doch Zeit...ganz ruhig :-)
 
Original geschrieben von Lars Michelsen
Und was machst du, falls das Script mal auf einer Windows Maschine laufen sollte?
Das find ist ja meiner Meinung nach ein Befehl, der durch das exec in die "Console" übergeben wird.

Also Betriebsystemabhängig?! Wenn ja...dickes, fettes -
Start -> Ausführem -> cmd -> <Enter> -> help find -> <Enter>
Soviel zur oft angesprochenen Eigeninitiative, nee ist schon Ok, ich weiss, dass du sonst nicht so probierfaul bist ;)

btw: !== ist nicht der korrekte ungleich Vergleichoperator und warum gehst du alle String-Vergleiche "von hinten" an ? (vergl. if(("." == $file) OR (".." == $file)))

könntest Du mir erkläen wsa Du da tust?
Ich sehe das es funktioniert versteh aber noch nicxh ganz Wie
Er löst einfach nur alles, was man auch einfach strukturiert mit opendir() und readdir() lösen kann über die dir-Klasse. Es ist so wie ich das sehe ein (zweifelhafter Versuch) dem ganzen die Objektorientierung "aufzuzwingen" wo ich bei dem Beispiel irgendwie kaum Sinn für sehe ;-]
 
Zuletzt bearbeitet:
Ich mags halt von hinten :-)
Neine, Scherz beiseite...ich hab die Funktion irgendwann mal irgendwo gefunden und so übernommen, lag so auf meinem Webserver.

Die Funktion die ich zum Verzeichnissauslesen benutze wollte ich nicht rauskramen weil ich da noch etwas suchen müsste ;)

Naja, für dich denn nochmal meine :D
Vieleicht gefällt sie ja besser ;D

PHP:
function listdir($path=".")    
{
    $dir = dir($path);
    $files=array();
    while($file=$dir->read())
    {
        if($file!="." && $file!="..") 
        { 
            array_push($files, $file); 
        }
    }
    $dir->close();
    return $files;
} 

//Hier der Aufruf der Funktion und die Ausgabe des Arrays, der vond er Funktion zurückgegeben wird.
$file=listdir();
foreach($file as $filename) 
{ 
    echo $filename."<br>"; 
}

Ich hoffe, die gefällt dir besser ;)
 
Zuletzt bearbeitet:
Fehler korriegert :-)
Jop Lars hab auch Dich gemeint. und ich will nur die Dateien eines Verzeichnisses nicht die unterordner.
habs mit hilfe des php manuals gelöst

steh jetzt nur vor nem anderen Problem wie filter ich da Ordner raus?
Danke für die die helfen wollten.:-) und es auch haben
 
Zuletzt bearbeitet:
Zurück