Dateien rekursiv mit PHP zählen

7

Einfache Frage für einen Newb und mein Google-Fu versagt mich. Wie können Sie mit PHP die Anzahl der Dateien in einem bestimmten Verzeichnis zählen, einschließlich aller Unterverzeichnisse (und eventuell vorhandener Unterverzeichnisse usw.)? z.B. Wenn die Verzeichnisstruktur so aussieht:

%Vor%

Das Skript sollte mit "5" für "./Dir_A" zurückkehren.

Ich habe folgendes zusammengeschustert, aber es liefert nicht die richtige Antwort, und ich bin mir nicht sicher warum:

%Vor%

Ich würde jede Hilfe sehr schätzen.

    
user18359 12.03.2009, 23:49
quelle

6 Antworten

15

Dies sollte den Trick machen:

%Vor%     
Paolo Bergantino 12.03.2009, 23:57
quelle
13

Verwenden Sie die SPL, dann sehen Sie, ob Sie immer noch einen Fehler erhalten.

RecursiveDirectoryIterator

Anwendungsbeispiel:

%Vor%

Dies druckt eine Liste aller Dateien und Verzeichnisse unter $ path (einschließlich $ path ifself). Wenn Sie Verzeichnisse auslassen möchten, entfernen Sie den RecursiveIteratorIterator :: SELF_FIRST-Teil.

Dann benutze einfach isDir ()

    
Andrew Clark 12.03.2009 23:59
quelle
0

Warum übermittelst du $ filecount? Der [pass-in] Wert wird nicht verwendet; Die einzige Verwendung ist bei "$ total + = $ filecount" und Sie überschreiben $ filecount kurz davor.

Sie verpassen den Fall, wenn die Funktion auf eine normale (nicht dir) Datei trifft.

Edit: Ich habe gerade den Aufruf von glob () bemerkt. Es ist nicht nötig. Ihre Funktion berührt rekursiv jede Datei in der gesamten Verzeichnisstruktur. Siehe @Paolo Bergantinos Antwort.

    
aib 12.03.2009 23:56
quelle
0

Paolo Bergantino war fast mit seinem Code, aber die Funktion wird immer noch .DS_Store Dateien zählen, da er sie falsch geschrieben hat. Korrigieren Sie den Code unter

%Vor%     
quelle
0

basierend auf Andrews Antwort ...

%Vor%

So kann ich Tausende & Amp; Tausende Dateien. 680.642 Dateien in weniger als 4.6 Sekunden tatsächlich;)

    
davidmars 25.01.2017 09:52
quelle
-1

Überprüfen Sie das PHP-Handbuch zu glob() function: Ссылка

Es gibt Beispiele in Kommentaren, wie man es rekursiv machen kann.

    
Ilya Birman 13.03.2009 00:04
quelle

Tags und Links