Files
carpseeds.pl/wp-content/plugins/akeebabackupwp/app/Solo/Helper/Format.php
2024-07-15 11:28:08 +02:00

50 lines
1.4 KiB
PHP

<?php
/**
* @package solo
* @copyright Copyright (c)2014-2022 Nicholas K. Dionysopoulos / Akeeba Ltd
* @license GNU General Public License version 3, or later
*/
namespace Solo\Helper;
abstract class Format
{
/**
* Format a size in bytes in a human readable format (e.g. 1.2Gb)
*
* @param integer $sizeInBytes The size to convert, in bytes
* @param integer $decimals Accuracy, in decimal points (default: 2)
* @param boolean|string $force_unit Force a particular unit? Choose one of b, Kb, Mb, Gb, Tb or false for
* automatic determination of the best unit.
* @param string $dec_char Decimal separator character, default dot
* @param string $thousands_char Thousands separator character, default none
*
* @return string The formatted number
*/
public static function fileSize($sizeInBytes, $decimals = 2, $force_unit = false, $dec_char = '.', $thousands_char = '')
{
if ($sizeInBytes <= 0)
{
return '-';
}
$units = array('b', 'KB', 'MB', 'GB', 'TB', 'PB');
if ($force_unit === false)
{
$unit = floor(log($sizeInBytes, 2) / 10);
}
else
{
$unit = $force_unit;
}
if ($unit == 0)
{
$decimals = 0;
}
return number_format($sizeInBytes / (1024 ** $unit), $decimals, $dec_char, $thousands_char) . ' ' . $units[$unit];
}
}