![Software License][ico-license]
![Total Downloads][ico-downloads], (*1)
ByteSize is a utility component for formatting file sizes in various formats., (*2)
Requirements
- PHP 5.3+
- BCMath extension
Install
Via Composer, (*3)
``` bash
$ composer require rych/bytesize, (*4)
## Usage
Basic usage is very simple. Create an instance of `Rych\ByteSize\ByteSize` and
call its `format()` method.
```php
<?php
// Default formatter is metric (kilobyte = 1000 bytes)
$bytesize = new \Rych\ByteSize\ByteSize;
// Outputs 1.44MB
echo $bytesize->format(1440000);
The default formatter may be customized as well, using either the
\Rych\ByteSize\Formatter\Metric
or \Rych\ByteSize\Formatter\Binary
classes.
The metric formatter is based on a 1000-byte kilobyte and uses standard SI
suffixes (kB, MB, GB, TB, etc). The binary formatter is based on a 1024-byte
kilobyte and uses the standard binary suffixes (KiB, MiB, GiB, TiB, etc). Both
formatters use a default precision of 2 significant digits in the formatted
output, but that can be changed to any number in the range 0-10 inclusive., (*5)
<?php
// Use the binary formatter with a default precision of 1
$formatter = new \Rych\ByteSize\Formatter\Binary;
$formatter->setPrecision(1);
$bytesize = new \Rych\ByteSize\ByteSize($formatter);
// Outputs 1.4MiB
echo $bytesize->format(1509949);
Precision can also be set at call time via the second argument to the
format()
methods., (*6)
If you don't care for all this OO stuff, the core \Rych\ByteSize
class also
provides two static methods: formatMetric()
and formatBinary()
. The method
signatures are the same as the standard format()
methods., (*7)
<?php
use \Rych\ByteSize\ByteSize;
// Static methods also work in a pinch
echo ByteSize::formatMetric(1440000); // 1.44MB
echo ByteSize::formatBinary(1509949); // 1.44MiB
Testing
bash
$ vendor/bin/phpunit -c phpunit.dist.xml
, (*8)
License
The MIT License (MIT). Please see License File for more information., (*9)