Функция для отображения размера файла
Размер файлов в PHP измеряется в байтах, но числа из большого количества цифр для восприятия очень неудобны. На мой взгляд гораздо нагляднее, если размер больших файлов будет отображаться в килобайтах, мегабайтах и так далее. Для этого я нарисовал вот такую вспомогательную функцию:Code (PHP) : Убрать нумерацию
- function bytes2words($size) {
- for($i=0; $i<count($st=array('Кб','Мб','Гб')); $i++) {
- if (($size/=1024)<1024) { $i++; break; }
- }
- return round($size,2).' '.$st[($i-1)];
- }
Code (PHP) : Убрать нумерацию
- echo bytes2words(1000).'<br>'; // 0.98 Кб
- echo bytes2words(10000).'<br>'; // 9.77 Кб
- echo bytes2words(100000).'<br>'; // 97.66 Кб
- echo bytes2words(1000000).'<br>'; // 976.56 Кб
- echo bytes2words(10000000).'<br>'; // 9.54 Мб
- echo bytes2words(100000000).'<br>'; // 95.37 Мб
- echo bytes2words(1000000000).'<br>'; // 953.67 Мб
- echo bytes2words(10000000000).'<br>'; // 9.31 Гб
- echo bytes2words(100000000000).'<br>'; // 93.13 Гб
- echo bytes2words(1000000000000).'<br>'; // 931.32 Гб
- echo bytes2words(10000000000000).'<br>'; // 9313.23 Гб
- echo bytes2words(100000000000000).'<br>'; // 93132.26 Гб
Code (PHP) : Убрать нумерацию
- echo bytes2words(100000000000).'<br>'; // 93.13 Гб
- echo bytes2words(1000000000000).'<br>'; // 931.32 Гб
- echo bytes2words(10000000000000).'<br>'; // 9.09 Тб
- echo bytes2words(100000000000000).'<br>'; // 90.95 Тб
Просмотров: 4683 | Комментариев: 4
Метки: PHP
Внимание! Статья опубликована больше года назад, информация могла устареть!
Комментарии
Отзывы посетителей сайта о статье
Vanyamba
(20.01.2021 в 06:38):
Изящное решение. За что люблю PHP.
morgot
(01.05.2020 в 19:00):
Спасибо, пригодилось, хорошая вещь.
Павел
(04.11.2014 в 22:31):
Ещё один вариант:
function format_bytes($size, $precision = 2) {
$base = log($size) / log(1024);
$suf = array(' byte', ' Kb', ' Mb', ' Gb', ' Tb');
return round(pow(1024, $base - floor($base)), $precision) . $suf[floor($base)];
}
function format_bytes($size, $precision = 2) {
$base = log($size) / log(1024);
$suf = array(' byte', ' Kb', ' Mb', ' Gb', ' Tb');
return round(pow(1024, $base - floor($base)), $precision) . $suf[floor($base)];
}
Алексей
(21.05.2012 в 14:39):
Супер-мини код :) Спасибо!
Добавить комментарий
Заполните форму для добавления комментария