0
Мое значение немного отключено, возможно, кто-то посмотрит, как я его конвертирую, вижу, что что-то не так. Я вводил 64 МБ в байты, а затем преобразовывал байты в КБ с помощью FileSizeConvert, m не совсем уверен, правильно ли кто-то может посмотреть и посмотреть, должны ли быть какие-либо изменения для 64mb, должно быть 64000KB, а мой выход - 65536 КБ.от преобразования байтов в новый тип
public static function convertToBytes($from){
$number = substr($from, 0, -2);
switch(strtoupper(substr($from,-2))){
case "KB":
return $number*1024;
case "MB":
return $number*pow(1024,2);
case "GB":
return $number*pow(1024,3);
case "TB":
return $number*pow(1024,4);
case "PB":
return $number*pow(1024,5);
default:
return $from;
}
}
public static function FileSizeConvert($bytes, $type)
{
$types = ['TB', 'GB', 'MB', 'KB', 'B'];
$index = array_search($type, array_values($types));
$bytes = floatval($bytes);
$arBytes = array(
0 => array(
"UNIT" => "TB",
"VALUE" => pow(1024, 4)
),
1 => array(
"UNIT" => "GB",
"VALUE" => pow(1024, 3)
),
2 => array(
"UNIT" => "MB",
"VALUE" => pow(1024, 2)
),
3 => array(
"UNIT" => "KB",
"VALUE" => 1024
),
4 => array(
"UNIT" => "B",
"VALUE" => 1
),
);
$result = $bytes/$arBytes[$index]["VALUE"];
$result = str_replace(".", "," , strval(round($result, 2)))." ".$arBytes[$index]["UNIT"];
return $result;
}
использование:
$max_file_size = Helper::convertToBytes(ini_get('upload_max_filesize') . 'B'); // value is 64MB
$kb = Helper::FileSizeConvert($max_file_size, 'KB'); // ouput 65536 KB
Помните, что уровень 2. 2^10 = 1024. Один MB равен 1024 kb – newGuy
Вы говорите, что правильное уравнение – ONYX
Я говорю, что результат правильный. Вы сказали, что выход должен быть 64000, но это неверно – newGuy