Skip to content

A robust, modern PHP library for handling byte formatting and parsing with precision and flexibility. Designed for production use with best practices, security, and extensibility in mind.

License

Notifications You must be signed in to change notification settings

ramazancetinkaya/byte-formatter

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

15 Commits
 
 
 
 
 
 
 
 

Repository files navigation

Byte Formatter Library

PHP Version Packagist Downloads License Stars Issues

Byte Formatter is your go-to PHP library for converting bytes into human-readable strings and vice versa. Built with modern PHP 8 features, it’s fast, reliable, and developer-friendly—making your life just that little bit easier when handling data sizes.

Report a Bug · New Pull Request

⭐ Show Your Support

If you like this project, give it a ⭐ and share it with your network!


🚀 Features

  • 🧠 Smart Formatting: Converts bytes to formats like 10 KiB or 10 KB.
  • 🔄 Two-Way Conversion: Parse size strings like 1.5 MB into bytes.
  • 🎛️ Customizable Precision: Fine-tune decimal places in formatted outputs.
  • ⚙️ Binary & Decimal Prefixes: Switch between 1024 (binary) and 1000 (decimal) systems.
  • 💪 Error Resilient: Robust validation and descriptive error handling.
  • 📦 Lightweight & Dependency-Free: No external dependencies—just clean, reliable PHP.

📦 Installation

You can install the ByteFormatter library using Composer. Run the following command in your terminal:

composer require ramazancetinkaya/byte-formatter

Alternatively, download the source code and include it in your project manually.

Requirements

  • PHP 8.0 or higher.
  • No additional dependencies.

📖 Usage Examples

1. Basic Formatting

require 'vendor/autoload.php';

use ramazancetinkaya\ByteFormatter;

$formatter = new ByteFormatter(true, 2); // Binary prefixes, 2 decimal places

echo $formatter->formatBytes(10240); // Output: "10 KiB"

2. Parse Human-Readable Strings

require 'vendor/autoload.php';

use ramazancetinkaya\ByteFormatter;

$formatter = new ByteFormatter();

$bytes = $formatter->parseSize("1.5 MiB");

echo $bytes; // Output: 1572864

3. Convert Byte Sizes Between Prefix Systems

require 'vendor/autoload.php';

use ramazancetinkaya\ByteFormatter;

$formatter = new ByteFormatter();

echo $formatter->convert(10240, false); // Output: "10 KB" (Decimal prefix)

⚙ Configuration

Option Description Default
useBinaryPrefix Use binary prefixes (1024-based) or decimal (1000) true
precision Number of decimal places for formatted output 2

📖 Documentation

Public Methods

Method Description
formatBytes() Formats a byte size into a human-readable string.
parseSize() Parses a human-readable size string into bytes.
convert() Converts a size between binary and decimal prefix systems or to a specific unit.

📂 Project Structure

src/
├── ByteFormatter.php
composer.json
README.md

🛡 Security

This library is designed with security in mind. Input validation and error handling are implemented to prevent misuse. For vulnerabilities, please open an issue.

🤝 Contributing

Contributions are welcome! Please feel free to submit a pull request or open an issue for any enhancements or bug fixes.

📄 License

This project is licensed under the MIT License. See the LICENSE file for more details.

About

A robust, modern PHP library for handling byte formatting and parsing with precision and flexibility. Designed for production use with best practices, security, and extensibility in mind.

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages