nrk/bencoder

A Bencode serializer and deserializer in pure PHP

v1.0.0 2011-12-24 17:02 UTC

This package is not auto-updated.

Last update: 2024-04-13 10:03:58 UTC


README

About

Bencoder is an utility class implemented in pure PHP that handles the serialization and deserialization of objects using the Bencode encoding format.

The original implementation of this class dates back to the early months of 2004 and it has been somewhat adapted and updated in order to work with modern versions of the PHP interpreter right before making it public. Basically I am making this library open source just because someone might find it useful and it would be a shame to let it rot in the meanders of my backups.

Implementation details

  • As per specifications, this class does not handle float / double values.
  • The serialization and deserialization of integers greater than 2147483647 works only when using a 64bit PHP interpreter.
  • PHP arrays containing one or more string values as keys are interpreted as Bencode dictionaries.
  • The serializer does not check for circular references and it breaks generating a stack overflow error.

Example

<?php
require 'autoloader.php';

use Bencoder\Bencode;

$structure = array("oh", "rly?", "ya", "rly!");
$encoded = Bencode::encode($structure);
$decoded = Bencode::decode($encoded);

Author

License

The code for Bencoder is distributed under the terms of the MIT license (see LICENSE).