Created
July 4, 2020 04:00
-
-
Save cp6/106e8083594097af2cf5100b2762c2a0 to your computer and use it in GitHub Desktop.
PHP size conversion function
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?php | |
function convertSize(float $size, string $convert_from = 'B', string $convert_to = 'KB', bool $format = true, int $decimals = 2): float | |
{ | |
$size = sprintf("%.2f", $size);//Int to float | |
if ($convert_from === 'B') { | |
if ($convert_to === 'KB') { | |
$value = ($size / 1024); | |
} elseif ($convert_to === 'MB') { | |
$value = ($size / 1048576); | |
} elseif ($convert_to === 'GB') { | |
$value = ($size / 1073741824); | |
} elseif ($convert_to === 'TB') { | |
$value = ($size / 1099511627776); | |
} else { | |
$value = $size; | |
} | |
} elseif ($convert_from === 'KB') { | |
if ($convert_to === 'B') { | |
$value = ($size * 1024); | |
} elseif ($convert_to === 'MB') { | |
$value = ($size * 0.00097656); | |
} elseif ($convert_to === 'GB') { | |
$value = ($size * 0.0000009537); | |
} elseif ($convert_to === 'TB') { | |
$value = ($size * 0.00000000093132); | |
} else { | |
$value = $size; | |
} | |
} elseif ($convert_from === 'MB') { | |
if ($convert_to === 'B') { | |
$value = ($size * 1048576); | |
} elseif ($convert_to === 'KB') { | |
$value = ($size * 1024); | |
} elseif ($convert_to === 'GB') { | |
$value = ($size * 0.0009765625); | |
} elseif ($convert_to === 'TB') { | |
$value = ($size * 0.00000095367432); | |
} else { | |
$value = $size; | |
} | |
} elseif ($convert_from === 'GB') { | |
if ($convert_to === 'B') { | |
$value = ($size * 1073741824); | |
} elseif ($convert_to === 'KB') { | |
$value = ($size * 1048576); | |
} elseif ($convert_to === 'MB') { | |
$value = ($size * 1024); | |
} elseif ($convert_to === 'TB') { | |
$value = ($size * 0.0009765625); | |
} else { | |
$value = $size; | |
} | |
} elseif ($convert_from === 'TB') { | |
if ($convert_to == 'B') { | |
$value = ($size * 1099511627776); | |
} elseif ($convert_to === 'KB') { | |
$value = ($size * 1073741824); | |
} elseif ($convert_to === 'MB') { | |
$value = ($size * 1048576); | |
} elseif ($convert_to === 'GB') { | |
$value = ($size * 1024); | |
} else { | |
$value = $size; | |
} | |
} else { | |
$value = $size; | |
} | |
if ($format) $value = number_format($value, $decimals); | |
return floatval($value); | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment