2010-11-14 21 views

回答

19

您可以使用return_bytes from the documentation

function return_bytes($val) { 
    $val = trim($val); 
    $last = strtolower($val[strlen($val)-1]); 
    switch($last) { 
     // The 'G' modifier is available since PHP 5.1.0 
     case 'g': 
      $val *= (1024 * 1024 * 1024); //1073741824 
      break; 
     case 'm': 
      $val *= (1024 * 1024); //1048576 
      break; 
     case 'k': 
      $val *= 1024; 
      break; 
    } 

    return $val; 
} 

return_bytes(ini_get('post_max_size')); 
+0

呵呵..我只得到'調用未定義的函數return_bytes()' – Steven 2010-11-14 12:38:28

+0

我使用php v5.3 – Steven 2010-11-14 12:40:23

+1

他指的是在上面的鏈接中所述的功能。 – 2010-11-14 12:41:00

0

對於PHP 7解決方案將返回:

它可能被用來 '遇到非合式數值':

function return_bytes($val) 
{ 
    preg_match('/(?<value>\d+)(?<option>.?)/i', trim($string), $matches); 
    $inc = array(
     'g' => 1073741824, // (1024 * 1024 * 1024) 
     'm' => 1048576, // (1024 * 1024) 
     'k' => 1024 
    ); 

    $value = (int) $matches['value']; 
    $key = strtolower(trim($matches['option'])); 
    if (isset($inc[$key])) { 
     $value *= $inc[$key]; 
    } 

    return $value; 
} 

return_bytes(ini_get('post_max_size')); 
相關問題