erlang term format
v0.1.2
PHP декодер и энкодер для формата термина Erlang.
По умолчанию энкодер кодирует числовые строки как Bigint. Это поведение может быть изменено, передав Encoder::ENCODE_DIRECT_STRINGS_AS_BINARY к конструктору, поэтому все строки, непосредственно данные Encoder->encode будут кодированы как строка. Или всегда кодировать числовые строки как двоичные, передайте Encoder::ENCODE_STRINGS_AS_BINARY к конструктору.
Установить эту библиотеку через композитор, используя
composer require obsidian/etf
Пример минимального декодирования:
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)
}
*/Пример минимального кодирования:
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