2017-01-15 1 views
0

Кто-нибудь знает, как преобразовать тип, который может быть байт, Кб, Мб, Гб и т.д. на другой тип так, например, у меня есть следующиеPHP мб формат преобразования типов в кб или любой другой формат

ini_get('upload_max_filesize') 

// это может быть в мб мое значение на данный момент 64м, поэтому мне нужно, чтобы компенсировать более короткие сокращения

и значение в мб мне нужно, чтобы преобразовать его в КБ или любого другого типа

Helper::convertType(ini_get('upload_max_filesize'), 'kb'); the kb coulb be bytes or gb 
+0

http://stackoverflow.com/questions/2510434/format-bytes-to -kilobytes-megabytes-gigabytes – Axalix

ответ

1

вам может использовать это код в качестве помощника, чтобы сделать его читаемым человеком:

 

    /** 
    * Converts bytes into human readable file size. 
    * 
    * @param string $bytes 
    * @return string human readable file size (2,87 Мб) 
    * @author Mogilev Arseny 
    */ 
    function FileSizeConvert($bytes) 
    { 
    $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 
      ), 
     ); 

    foreach($arBytes as $arItem) 
    { 
     if($bytes >= $arItem["VALUE"]) 
     { 
      $result = $bytes/$arItem["VALUE"]; 
      $result = str_replace(".", "," , strval(round($result, 2)))." ".$arItem["UNIT"]; 
       break; 
      } 
     } 
     return $result; 
    } 

Или использовать эту функцию, чтобы вручную преобразовать размер файла:

 

    function changeType($size, $from, $to){ 
     $arr = ['B', 'KB', 'MB', 'GB', 'TB']; 
     $tSayi = array_search($to, $arr); 
     $eSayi = array_search($from, $arr); 
     $pow = $eSayi - $tSayi; 
     return $size * pow(1024, $pow) . ' ' . $to; 
    } 

    echo changeType(1, 'MB', 'KB'); 

+0

Как я могу просто заставить его преобразовать MB в КБ или только определенный тип, например iwant 64MB, в KB, это то, что я хочу, чтобы функция выполняла – ONYX

+0

Я написал еще одну функцию для преобразования любого типа размера файла для любого другого типа размера файла. вы можете использовать это в своем проекте. –