method convertSize documentation in bbn\Str

Converts size from one unit to another.

Example

var_dump(\bbn\Str::convertSize(1, 'GB', 'B')); // (string) "1073741824B" var_dump(\bbn\Str::convertSize(1, 'TB', 'GB')); // (string) "1024GB" var_dump(\bbn\Str::convertSize(500000, 'MB', 'TB', 6)); // (string) "0.47684TB" function($size, $unit_orig = 'B', $unit_dest = 'MB', $percision = 0) { $unit_orig = strtoupper($unit_orig); $unit_dest = strtoupper($unit_dest); if (strlen($unit_orig) <= 1 && $unit_orig !== 'B') { $unit_orig .= 'B'; } if (strlen($unit_dest) <= 1 && $unit_dest !== 'B') { $unit_dest .= 'B'; } $units = ['B', 'KB', 'MB', 'GB', 'TB']; if (!in_array($unit_orig, $units)) { throw new \Exception(X::_("Invalid original unit")); } if (!in_array($unit_dest, $units)) { throw new \Exception(X::_("Invalid destination unit")); } $bytes = $size; $orig_index = array_search($unit_orig, $units); $dest_index = array_search($unit_dest, $units); // If destination unit is smaller than the original then reverse the units array if ($dest_index < $orig_index) { $units = array_reverse($units); $orig_index = array_search($unit_orig, $units); $dest_index = array_search($unit_dest, $units); $reversed = true; } for ($i = $orig_index + 1; $i <= $dest_index; $i++) { if (isset($reversed)) { $bytes *= 1024; } else { $bytes /= 1024; } } return round($bytes, $percision) . $unit_dest; }

Converts size from one unit to another. BBN is a suite of PHP and JS libraries and VueJS components - all open-source! bbn.io, build applications, the quick way

This website uses cookies to ensure you get the best experience on our website.