Skip to content

Instantly share code, notes, and snippets.

@elinaldosoft
Last active December 16, 2015 10:39
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save elinaldosoft/5421412 to your computer and use it in GitHub Desktop.
Save elinaldosoft/5421412 to your computer and use it in GitHub Desktop.
Esse método receber um value do tipo String no formato 1mb 1m 1MB, GB,KB,TB e transforma em uma cadeia de bytes. desconverte Megabyte (Mb), Gigabyte (Gb), Terabyte (Tb) para Kilobyte (Kb); $out = $this->getSizeBytes('1MB'); echo $out; 1048576
public function getSizeBytes($value){
$BYTES = 1024;
$mb = array('mb','m');
$kb = array('k','kb');
$gb = array('g','gb');
$tb = array('t','TB');
$formts = array_merge($kb, $mb, $gb, $tb);
$greatness = is_string(substr($value, -2, 2)) ? substr($value, -2, 2) : substr($value, -1, 1) ;
$size = str_replace($formts,'',$value);
switch ($greatness) {
case in_array(strtolower($greatness), $mb):
return (floatval($size) * pow($BYTES, 2));
break;
case in_array(strtolower($greatness), $kb):
return (floatval($size) * $BYTES);
break;
case in_array(strtolower($greatness), $gb):
return (floatval($size) * pow($BYTES, 3));
break;
case in_array(strtolower($greatness), $gb):
return (floatval($size) * pow($BYTES, 4));
break;
default:
return $value;
break;
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment