Simple file size conversion for PHP 5.3+

Installs: 4 620

Dependents: 0

Stars: 8

Watchers: 1

v1.1.1 2014-10-28 14:45 UTC


Get it? Bytes? Bites?

Nomnom handles file size conversion for PHP 5.3+. It handles both binary (base 2) and metric (base 10) conversions. It provides a simple interface for converting between sizes of any similar base!


A Nomnom object is constructed with a "start" value that will be converted. Two methods are defined on this object: from and to. Each of these methods takes a metric or binary unit to convert from/to.

The to method takes an optional precision value to specify how many significant digits to keep in the result.

$nomnom = new Nomnom(1440000);

//metric conversion to 1.44
$mb = $nomnom->from('B')->to('MB', 2);

$nomnom = new Nomnom(1024);

//binary conversion to 1
$kb = $nomnom->from('KiB')->to('MiB');

//convert a file size
$filesize = new Filesize('/path/to/file.txt');
$mb = $filesize->to('MB');

As a convenience, Nomnom provides a factory method called nom and constants for the metric and binary units.

//returns 1.44
Nomnom::nom(1440000)->from(Nomnom::BYTES)->to(Nomnom::MB, 2);

//factory for Filesize


'B' refers to bytes in either base 10 or base 2.

Nomnom will throw a ConversionException if the from and to methods contain units for different bases, i.e no $nomnom->from('KiB')->to('MB');

Nomnom requires the bcmath extension to handle greater precision.


To run the tests, make sure dependencies have been installed with composer install --dev and run:

vendor/bin/phpunit test/