Skip to content

Instantly share code, notes, and snippets.

@cp6
Created July 4, 2020 04:00
Show Gist options
  • Save cp6/106e8083594097af2cf5100b2762c2a0 to your computer and use it in GitHub Desktop.
Save cp6/106e8083594097af2cf5100b2762c2a0 to your computer and use it in GitHub Desktop.
PHP size conversion function
<?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