Как получить общий размер файлов в каталоге? php

Функция принимает параметр имя директории. Пытаюсь рассчитать размер всех файлов в папке. Что делаю не так?

function t8($path)
{
$x = "";
foreach (glob($path) as $file) {//glob — Находит файловые пути, совпадающие с шаблоном
    $x .= filesize($file);
}
    return var_dump($x);

}

Ответы (1 шт):

Автор решения: KoRn
function t8($path)
{
$x = 0;
    if($r = opendir($path)){// открываем папку
        while(false !== ($c = readdir($r))){/
          //  readdir($r)) - читает по очереди имена файлов и папок и засовывает в $c
          //  в момент когда все файлы и папки прочитаны в $c команда readdir засунет в $c значение false
          //  Сработает false !== false и цикл while остановится. Т.е. закончит читать папку   
            if ($c != "." && $c != ".." ){ //в любой папке любой ОС есть элементы ссылки 
                //на текущий каталог . (одна точка) и на родителя .. (две точки)
                // они скрыты, но есть - нам они не нужны - откидываем этой командой

               // непосредственно находящийся выше текущего справочника в иерархии файловой системы. 
               // Справочник, представленный двумя точками, называется родительским для справочника, 
              //  обозначенного одной точкой (вашего текущего справочника).
               
                echo "$c\n"; // универсальный символ перевода строки в консоли
                $x += filesize($path.'/'.$c);//путь к файоу, имя папки имя файла
            }
        }
        closedir($r);//закрыли диреткорию
    }
    return $x;
}
→ Ссылка