Encodera

Спасибо, что читаете!

Пожертвуйте сайту, мы стараемся ради вас.

Как показать размер файла в понятном виде

Короткий ответ

Делите размер на 1024, пока он не станет меньше 1024, и запоминайте единицу:

<?php
 
function formatSize(int $bytes): string
{
    $units = ['B', 'KB', 'MB', 'GB'];
    $index = 0;
 
    while ($bytes >= 1024 && $index < count($units) - 1) {
        $bytes /= 1024;
        $index++;
    }
 
    return round($bytes, 1) . ' ' . $units[$index];
}
 
echo formatSize(532), ' | ', formatSize(1536), ' | ', formatSize(5242880);

Результат:

532 B | 1.5 KB | 5 MB

Размер настоящего файла

Число байт возвращает filesize():

<?php
 
$file = sys_get_temp_dir() . '/recipe-size.txt';
file_put_contents($file, str_repeat('a', 2048));
 
echo filesize($file) / 1024, ' KB';

Результат:

2 KB

Функции из этого ответа

  • round — Округляет число до заданного количества знаков.
  • filesize — Возвращает размер файла в байтах.
  • floor — Округляет число вниз до ближайшего целого.

Спасибо, что читаете!

Пожертвуйте сайту, мы стараемся ради вас.