Размер файла в мегабайтах — PHP

Функция filesize()

PHP возвращает размер файла в байтах функцией int filesize(string filename). Функций вывода привычного размера файла в привычном для нас виде (10.24МБ, 5.43КБ, 500Б, 1.02ГБ и т.д.) нет.

Функция filesize_format()

Вопрос решается написанием достаточно простой функции string filesize_format(int filesize).

<?php /** * Размер файла в кило/мега/гига/тера/пета байтах * @param int $filesize — размер файла в байтах * * @return string — возвращаем размер файла в Б, КБ, МБ, ГБ или ТБ */ function filesize_format($filesize) { $formats = array('Б','КБ','МБ','ГБ','ТБ');// варианты размера файла $format = 0;// формат размера по-умолчанию // прогоняем цикл while ($filesize > 1024 && count($formats) != ++$format) { $filesize = round($filesize / 1024, 2); } // если число большое, мы выходим из цикла с // форматом превышающим максимальное значение // поэтому нужно добавить последний возможный // размер файла в массив еще раз $formats[] = 'ТБ'; return $filesize.$formats[$format]; } echo filesize_format(500).'<br>'; echo filesize_format(1500).'<br>'; echo filesize_format(1000500).'<br>'; echo filesize_format(100000500).'<br>'; echo filesize_format(100000000500).'<br>'; echo filesize_format(10000000000500).'<br>'; echo filesize_format(10000000000000500).'<br>'; ?>

Результат

На экране вы увидите:

500Б
1.46КБ
977.05КБ
95.37МБ
93.13ГБ
9.09ТБ
9094.95ТБ

Категории

ПрограммированиеPHP

Читайте также

Комментарии