PHP zählen insgesamt Dateien im Verzeichnis und Unterverzeichnis Funktion

Ich benötige eine Gesamtanzahl von JPG-Dateien in einem angegebenen Verzeichnis, einschließlich ALLER Unterverzeichnisse. Keine Unterverzeichnisse.

Die Struktur sieht folgendermaßen aus:

dir1/
2 files  
   subdir 1/
       8 files

gesamtdir1 = 10 Dateien

dir2/ 
    5 files  
    subdir 1/ 
        2 files  
    subdir 2/ 
        8 files

gesamtdir2 = 15 Dateien

Ich habe diese Funktion, die nicht gut funktioniert, da sie nur Dateien im letzten Unterverzeichnis zählt und insgesamt 2x mehr als die tatsächliche Anzahl von Dateien ist.(Gibt 80 aus, wenn ich 40 Dateien im letzten Unterverzeichnis habe)

public function count_files($path) { 
global $file_count;

$file_count = 0;
$dir = opendir($path);

if (!$dir) return -1;
while ($file = readdir($dir)) :
    if ($file == '.' || $file == '..') continue;
    if (is_dir($path . $file)) :
        $file_count += $this->count_files($path . "/" . $file);
    else :
        $file_count++;
    endif;
endwhile;

closedir($dir);
return $file_count;
}

Antworten auf die Frage(5)

Ihre Antwort auf die Frage