megabite
Время для прочтения: 1 мин. 4 сек.

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

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

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

/* 
 * Форматируем строку с размеров файла 
 */ 
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]; 
}

Ссылки

Для вставки кода используйте HTML-теги
<pre><code class="php">ваш код</code></pre>

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

Такой e-mail уже зарегистрирован. Воспользуйтесь формой входа или введите другой.

Вы ввели некорректные логин или пароль

Извините, для комментирования необходимо войти.

2 комментария

по хронологии
по рейтингу сначала новые по хронологии

Очень нравится сниппет http://snipplr.com/view/4633/

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

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