Skip to content

Latest commit

 

History

History
122 lines (78 loc) · 4.67 KB

README.md

File metadata and controls

122 lines (78 loc) · 4.67 KB

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.