Если у вас ничего нет ... Вы можете использовать ту же рекурсию, но вам не нужно ничего хранить в массиве.
<?php
Вам нужна функция, и я предлагаю использовать параметры URL и AMOUNT
function CountFolders($url,$amount)
{
Функция получает список файлов и папок в текущей папке
$urlm=scandir($url);
Циклы по ним
foreach($urlm as $folder)
{
Проверяет, найден ли каталог или файл.
Если это каталог, а не ссылка для возврата ("." И ".."), подсчитывается его количество каталогов.
if((is_dir($url.'/'.$folder))&&($folder!='.')&&($folder!='..'))
{
$amount = $amount + 1;
Необязательно, чтобы показатьсписок найденных каталогов.
Здесь можно при необходимости сохранить имя каталога или URL-адрес массива.
//echo $url.'/'.$folder.' - <strong>DIR</strong><hr>';
Если это каталог, проверьте его на наличие других каталогов в нем
$amount=CountFolders($url.'/'.$folder,$amount);
}
}
Функция возвращает количество каталогов в каталоге.
return $amount;
}
Наконец, показывает результат
echo'Total directories: '.CountFolders('../TestFolder',0);
?>
И весь код в одном месте:
<?php
function CountFolders($url,$amount)
{
$urlm=scandir($url);
foreach($urlm as $folder)
{
if((is_dir($url.'/'.$folder))&&($folder!='.')&&($folder!='..'))
{
$amount = $amount + 1;
echo $url.'/'.$folder.' - <strong>DIR</strong><hr>';
$amount=CountFolders($url.'/'.$folder,$amount);
}
}
return $amount;
}
echo'Total folders: '.CountFolders('../TestFolder',0);
?>