l1nnah/file-size

A library to display and parse readable file sizes

v1.0.0 2025-06-14 17:10 UTC

This package is auto-updated.

Last update: 2025-06-14 19:03:27 UTC


README

Latest Version on Packagist Tests License

A lightweight and extensible PHP library to parse, format, and convert file sizes in a human-readable and localized way.

🚀 Features

  • Convert bytes to human-readable formats (KB, MB, GB, etc.);
  • Format file sizes with custom decimal and thousand separators;
  • Parse strings like "123.45 MB" or "1.234,56 KB" into bytes;
  • Multi-locale support with optional Laravel integration;
  • Fully tested with PHPUnit.

📥 Installation

composer require l1nnah/filesize

🔧 Usage

Converting bytes to human-readable format:

use L1nnah\FileSize\FileSizeConverter;
use L1nnah\FileSize\FileSizeUnits;

$valueInBytes = 123456;
$converter = new FileSizeConverter($valueInBytes);
$readable = $converter->convertTo(FileSizeUnits::KB);

echo $readable->toFixed(2); // Expected: "120.56 KB"


Parsing from human-readable string:

use L1nnah\FileSize\FileSizeConverter;

$converter = FileSizeConverter::fromString("1.234,56 MB");
echo $converter->sizeInBytes; // Expected: "1294467072"

✅ Testing

PHPUnit was used for testing with the commands:

vendor/bin/phpunit tests/FileSizeTest.php
vendor/bin/phpunit tests/FileSizeFromStringTest.php

📫 Credits

Developed by tonsoo and published under the nickname of l1nnah.