Total de arquivos de contagem do PHP na função de subdiretórios directory AND

Eu preciso obter uma contagem total de arquivos JPG dentro de um diretório especificado, incluindo todos os seus subdiretórios. Não há subdiretórios.

Estrutura parece com isso:

dir1/
2 files  
   subdir 1/
       8 files

totaldir1 = 10 arquivos

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

totaldir2 = 15 arquivos

Eu tenho essa função, que não funciona bem, pois só conta arquivos no último subdiretório, e o total é 2x maior que a quantidade real de arquivos.(irá gerar 80 se eu tiver 40 arquivos no último subdir)

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;
}

questionAnswers(5)

yourAnswerToTheQuestion