Чтобы получить размер файла применяется функция filesize($filename)
, которая возвращает размер файла указанного в $filename
в байтах.
Чтобы перевести байты в килобайты и мегабайты, можно воспользоваться функцией.
Функция рекурсивно проходит по всем директориям и возвращает размер всех файлов в байтах.
function dir_size($path) {
$path = rtrim($path, '/');
$size = 0;
$dir = opendir($path);
if (!$dir) {
return 0;
}
while (false !== ($file = readdir($dir))) {
if ($file == '.' || $file == '..') {
continue;
} elseif (is_dir($path . $file)) {
$size += dir_size($path . DIRECTORY_SEPARATOR . $file);
} else {
$size += filesize($path . DIRECTORY_SEPARATOR . $file);
}
}
closedir($dir);
return $size;
}
echo dir_size(__DIR__);