Простой вопрос для новичка, и мой Google-Fu подводит меня. Используя PHP, как вы можете подсчитать количество файлов в данном каталоге, включая любые подкаталоги (и любые подкаталоги, которые они могут иметь, и т. Д.)? например если структура каталогов выглядит следующим образом:
/Dir_A/
/Dir_A/File1.blah
/Dir_A/Dir_B/
/Dir_A/Dir_B/File2.blah
/Dir_A/Dir_B/File3.blah
/Dir_A/Dir_B/Dir_C/
/Dir_A/Dir_B/Dir_C/File4.blah
/Dir_A/Dir_D/
/Dir_A/Dir_D/File5.blah
Скрипт должен возвращаться с '5' для "./Dir_A".
Я собрал следующее, но он не совсем возвращает правильный ответ, и я не уверен, почему:
function getFilecount( $path = '.', $filecount = 0, $total = 0 ){
$ignore = array( 'cgi-bin', '.', '..', '.DS_Store' );
$dh = @opendir( $path );
while( false !== ( $file = readdir( $dh ) ) ){
if( !in_array( $file, $ignore ) ){
if( is_dir( "$path/$file" ) ){
$filecount = count(glob( "$path/$file/" . "*"));
$total += $filecount;
echo $filecount; /* debugging */
echo " $total"; /* debugging */
echo " $path/$file<br />"; /* debugging */
getFilecount( "$path/$file", $filecount, $total);
}
}
}
return $total;
}
Буду очень признателен за любую помощь.