#php
#php
Вопрос:
Привет, ребята, я пытаюсь понять, как это сделать, я нашел что-то подобное здесь, на веб-сайте, но это не помогло, я считаю, что это просто для многих.
Ну, я пытаюсь всегда показывать в MB, Этот пример ниже приведен прямо здесь, внизу, все в порядке, когда вы перечисляете 1GB 999MB, список 58MB не хочет меняться, я хочу продолжать использовать MB GB (1000MB) таким образом вечно. То же самое, когда KB не отображается в списке при перечислении 999K (1MB)
function formatBytes($size, $precision = 2){
$base = log($size) / log(1024);
$suffixes = array('', 'kB', 'MB', 'GB', 'TB');
return round(pow(1024, $base - floor($base)), $precision) . $suffixes[floor($base)];
}
echo formatBytes(57044287, 0); // 58MB
echo formatBytes(5700044287, 0); // 5GB -Show in 5000MB
Может ли кто-нибудь мне помочь?
Комментарии:
1. В чем ваша проблема? Пожалуйста, уточните, чего вы хотите и что происходит в данный момент?
Ответ №1:
<?php
function formatBytes($size, $precision = 2){
$mb = $size / 1048576;
return round($mb, $precision) . 'MB';
}
echo formatBytes(57044287, 0); // not 58MB - 54 MB!
print "n";
echo formatBytes(5700044287, 0); // 5GB -Show in 5000MB
вывод:
54MB
5436MB
Ответ №2:
Вы можете использовать это, чтобы получить размеры, округленные на их относительный размер; т.Е. 5436 => 5000, 123 => 100.
function formatBytes($size, $precision = 2)
{
$mbs = $size / 1024 / 1024;
$order = pow(10, floor(log($mbs, 10)));
return (round($mbs / $order, $precision) * $order) . 'MB';
}
echo formatBytes(57044287, 0); // 54MB
echo formatBytes(5700044287, 0); // 5000MB