2010-11-14 27 views

Trả lời

19

Bạn có thể sử dụng 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

huh .. Tôi chỉ nhận được 'Gọi để undefined chức năng return_bytes()' – Steven

+0

Tôi đang sử dụng php v5.3 – Steven

+1

Ông đang đề cập đến chức năng được nêu trong liên kết ở trên. –

0

Đối với PHP 7 giải pháp sẽ trở lại: 'Một phi giá trị số cũng được hình thành gặp'

Nó có thể được sử dụng:

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')); 
Các vấn đề liên quan