rych / bytesize
Utility component for nicely formatted file sizes
Installs: 181 893
Dependents: 10
Suggesters: 0
Security: 0
Stars: 30
Watchers: 2
Forks: 1
Open Issues: 0
Requires
- php: >=5.3.4
- ext-bcmath: *
Requires (Dev)
- phpunit/phpunit: 3.7.*
This package is auto-updated.
Last update: 2024-09-23 11:55:48 UTC
README
ByteSize is a utility component for formatting file sizes in various formats.
Requirements
- PHP 5.3+
- BCMath extension
Install
Via Composer
$ composer require rych/bytesize
Usage
Basic usage is very simple. Create an instance of Rych\ByteSize\ByteSize
and
call its format()
method.
<?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.
<?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.
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.
<?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
$ vendor/bin/phpunit -c phpunit.dist.xml
License
The MIT License (MIT). Please see License File for more information.