Всегда показывать MB в PHP

#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