This PHP 7 library, strongly inspired by Jeffrey Sambells' blog post, computes a size in bytes in a human readable form.
This library is available through Packagist and can be installed using Composer:
composer require codeinc/human-readable-file-size
<?php
use CodeInc\HumanReadableFileSize\HumanReadableFileSize;
echo HumanReadableFileSize::getHumanSize(filesize('a-file.pdf'));
// outputs 2.88MB
echo HumanReadableFileSize::getHumanSize(filesize('a-file.pdf'), 1);
// outputs 2.9MB
echo HumanReadableFileSize::getHumanSize(filesize('a-file.pdf'), 0);
// outputs 3MB
<?php
use CodeInc\HumanReadableFileSize\HumanReadableFileSize;
$readableSize = new HumanReadableFileSize();
$readableSize->useNumberFormatter('fr-FR');
$readableSize->setSpaceBeforeUnit();
$readableSize->setByteSymbol('o');
echo $readableSize->compute(filesize('a-file.pdf'), 1);
// outputs 2,9 Mo
This library is published under the MIT license (see the LICENSE file).