Как показать размер файла в понятном виде
Короткий ответ
Делите размер на 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