nrk / bencoder

A Bencode serializer and deserializer in pure PHP.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Bencoder

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).

About

A Bencode serializer and deserializer in pure PHP.

License:MIT License


Languages

Language:PHP 100.0%