PHP Encode/Decode Library
A lightweight PHP library for encoding and decoding data in a simple, consistent way.## What is Bencode?
What is Bencode?
Bencode is a data serialization format originally developed for the BitTorrent protocol. It supports integers, byte strings, lists, and dictionaries in a compact and deterministic format.
Learn more: https://en.wikipedia.org/wiki/Bencode
Requirements
- PHP >= 8.4
Installation
Via Composer
composer require podoko/php-bencode
Usage
Encoding
use Podoko\Bencode\Encoder; $encoder = new Encoder(); $encoded = $encoder->encode('Hello World!'); // d12:Hello World!
Decoding
use Podoko\Bencode\Decoder; $decoder = new Decoder(); $decoded = $decoder->decode('d12:Hello World!'); // "Hello World!"
The decoder is intentionally lenient. It accepts data that is not strictly valid bencode, including:
- Unsorted dictionary keys
- Integers with leading zeros
This makes it suitable for parsing non-compliant or loosely formatted bencoded data