2010-11-14 3 views

Répondre

19

Vous pouvez utiliser le 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

hein .. Je reçois seulement 'Appel à la fonction indéfinie return_bytes()' – Steven

+0

J'utilise php v5.3 – Steven

+1

Il se réfère à la fonction qui est indiqué dans le lien ci-dessus. –

0

Pour PHP 7 la solution sera de retour: 'Une valeur numérique non bien formé rencontré'

Il peut être utilisé:

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')); 
Questions connexes