Размер файлов и директорий в PHP

Чтобы получить размер файла применяется функция filesize($filename), которая возвращает размер файла указанного в $filename в байтах.

echo filesize(__DIR__ . '/file.jpg'); // 126910
PHP

Чтобы перевести байты в килобайты и мегабайты, можно воспользоваться функцией.

Функция рекурсивно проходит по всем директориям и возвращает размер всех файлов в байтах.

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__);
PHP

Использование функии:

echo dir_size(__DIR__); // 130000
PHP
08.03.2020, обновлено 10.08.2021
295

Комментарии

, чтобы добавить комментарий.

Другие публикации

Загрузка файлов на сервер PHP
В статье приведен пример формы и php-скрипта для безопасной загрузки файлов на сервер, возможные ошибки и рекомендации при работе с данной темой.
46156
+19
Использование API Яндекс Диска на PHP
Можно найти множество применений Яндекс Диска на своем сайте, например, хранение бекапов и отчетов, обновление прайсов,...
38728
+13
Поиск файлов в PHP
Для поиска файлов на сервере хорошо подходит функция glob(), которая возвращает список файлов по заданной маске, например...
10721
0
Работа с именами файлов в PHP
Набор PHP функций для работы с путями и именами файлов.
2330
+2
Автоматическое сжатие и оптимизация картинок на сайте
Изображения нужно сжимать для ускорения скорости загрузки сайта, но как это сделать? На многих хостингах нет...
16452
+8
Отправка письма с вложением
Отправка e-mail в кодировке UTF-8 с вложенными файлами и возможные проблемы.
6844
0