erlang term format
v0.1.2
Décodeur PHP et encodeur pour le format de terme Erlang.
Par défaut, l'encodeur code pour les chaînes numériques comme BigInt. Ce comportement peut être modifié en passant Encoder::ENCODE_DIRECT_STRINGS_AS_BINARY au constructeur, donc toutes les chaînes directement données à Encoder->encode seront codées sous forme de chaîne. Ou pour toujours encoder les chaînes numériques en tant que binaire, passez Encoder::ENCODE_STRINGS_AS_BINARY au constructeur.
Installez cette bibliothèque via le compositeur en utilisant
composer require obsidian/etf
Exemple de décodage minimal:
use Obsidian ETF Decoder ;
// the binary erlang term format string (#PID<0.81.0>)
$ binary = base64_decode ( " g2d3DW5vbm9kZUBub2hvc3QAAABRAAAAAAA= " );
$ etf = new Decoder ();
$ pid = $ etf -> decode ( $ binary );
var_dump ( $ pid );
/*
class ObsidianETFPID#6 (4) {
public $node =>
class ObsidianETFAtom#5 (1) {
public $atom =>
string(13) "nonode@nohost"
}
public $id =>
int(81)
public $serial =>
int(0)
public $creation =>
int(0)
}
*/Exemple d'encodage minimal:
use Obsidian ETF Atom ;
use Obsidian ETF Encoder ;
$ value = new Atom ( ' hello ' );
$ etf = new Encoder ();
$ binary = $ etf -> encode ( $ value );
var_dump ( $ binary );
/*
string(8) "w║hello"
*/http://erlang.org/doc/apps/erts/erl_ext_dist.html