WordPress как на ладони
wordpress jino

recurse_dirsize() WP MU

Рекурсивно получает размер директории в байтах. Т.е. можно указать родительскую папку и получить полные её размер: включая вложенные папки.

Является основой для однотипной функции get_dirsize(), которая кэширует результат.

Функция определена только в мультисайтовой установке WordPress. Поэтому чтобы функция работала в обычной установке, нужно подключить файл:

require_once ABSPATH . WPINC .'/ms-functions.php';
Используется в: get_dirsize().

Хуков нет.

Возвращает

Число/false. Размер в байтах. Если директории не существует то вернет fales.

Использование

recurse_dirsize( $directory, $exclude );
$directory(строка) (обязательный)
Полный путь до каталога (папки).
$exclude(строка)
Полный путь до вложенных папок, размер которых не нужно учитывать.
По умолчанию: null

Примеры

#1 Получим полный размер каталога загрузок uploads

$upload_dir = (object) wp_upload_dir();

// подключим файл функции
require_once ABSPATH . WPINC .'/ms-functions.php';

$mb = recurse_dirsize( $upload_dir->basedir );

echo number_format( $mb / (1024*1024), 1 ) .' MB'; // выведет: 74.5 MB

Код recurse dirsize: wp-includes/ms-functions.php WP 4.8.2

<?php
function recurse_dirsize( $directory, $exclude = null ) {
	$size = 0;

	$directory = untrailingslashit( $directory );

	if ( ! file_exists( $directory ) || ! is_dir( $directory ) || ! is_readable( $directory ) || $directory === $exclude ) {
		return false;
	}

	if ($handle = opendir($directory)) {
		while(($file = readdir($handle)) !== false) {
			$path = $directory.'/'.$file;
			if ($file != '.' && $file != '..') {
				if (is_file($path)) {
					$size += filesize($path);
				} elseif (is_dir($path)) {
					$handlesize = recurse_dirsize( $path, $exclude );
					if ($handlesize > 0)
						$size += $handlesize;
				}
			}
		}
		closedir($handle);
	}
	return $size;
}

Cвязанные функции

Из метки: Файловая система (создание удаление директорий файлов)

Еще из раздела: Мультисайт

recurse_dirsize Комментариев нет

Здравствуйте, !

Ваш комментарий