Форматирование строки с размером файла

Очень часто возникает необходимость рядом со ссылкой на файл вывести его размер в человекопонятном формате с указанием приставки по системе СИ

Собственно, сама функция

/* 
 * Форматируем строку с размеров файла 
 */ 
function formatSize($size) { 
	$units = array(' Б', ' Кб', ' Мб', ' Гб', ' Тб'); 
	for ($i = 0; $size >= 1024 && $i < 4; $i++) {
		$size /= 1024; 
	}

	return round($size, 2).$units[$i]; 
}

Использовать можно примерно так:

$filename = '/path/to/file'; 
if (is_file($filename)) { 
	printf( "Размер вашего файла %s: %s", basename($filename), formatSize(filesize($filename)) ); 
}

Другой вариант

Спасибо пользователю Ostin за наводку.

function formatSize($size) { 
	$filesizename = array( " Bytes", " KB", " MB", " GB", " TB", " PB", " EB", " ZB", " YB" ); 
	return $size ? 
		round($size/pow(1024, ($i = floor(log($size, 1024)))), 2) . $filesizename[$i] :
		'0 ' . $filesizename[0]; 
}

Ссылки

Источник: https://www.kobzarev.com/programming/formatting-a-string-with-the-file-size/

Михаил Кобзарёв

Суровый русский тимлид. Жил в Магадане, в офисе московских веб студий и в Тульской деревне. Виртуозно знает WordPress, PHP, ООП, Vue.js и вот это вот все. Делает крутые высоконагруженные сайты, поэтому уже почти захватил весь рынок WordPress разработки в России. Не дает никому делать сайты без спроса. Ведет блог о разработке, дайджест в телеграмме и в ВК. Любит сиськи, баню и радиоэлектронику. 100% патриот (но это не точно). Тролль 542 уровня. Ездит в отпуск раз в 5 лет.

Добавить комментарий

%d такие блоггеры, как: