binn php
v0.9.0
바이너리 스트링에 직렬화를위한 PHP 클래스.
원래 C Binn 라이브러리 : https://github.com/liteserver/binn
빈 사양 : https://github.com/liteserver/binn/blob/master/spec.md
composer require knik/binn순차적 인 배열 :
use Knik Binn Binn ;
$ binn = new Binn ();
// List
$ array = [ 123 , - 456 , 789 ];
$ binnString = $ binn -> serialize ( $ array );
$ unserialized = $ binn -> unserialize ( $ binnString ); // Equal with $array숫자 키 어레이 :
$ binn = new Binn ();
// Map
$ array = [ 1 => " add " , 2 => [- 12345 , 6789 ]];
$ binnString = $ binn -> serialize ( $ array );
$ unserialized = $ binn -> unserialize ( $ binnString ); // Equal with $array문자열 키 어레이 :
$ binn = new Binn ();
// Object
$ array = [ " hello " => " world " ];
$ binnString = $ binn -> serialize ( $ array );
$ unserialized = $ binn -> unserialize ( $ binnString ); // Equal with $array혼합 어레이 :
$ binn = new Binn ();
$ array = [ [ " id " => 1 , " name " => " John " ], [ " id " => 2 , " name " => " Eric " ] ]
// A list of objects
$ binnString = $ binn -> serialize ( $ array );
$ unserialized = $ binn -> unserialize ( $ binnString ); // Equal with $array얼룩:
$ binn = new Binn ();
$ file = fopen ( ' /path/to/file.jpg ' , ' rb ' );
// Filedata in binn structure
$ bin1 = $ binn -> serialize ( $ file );
// Filedata in binn list structure
$ bin2 = $ binn -> serialize ([ ' file ' => $ file ]);Symfony Serializer와 함께 Binnencoder를 사용할 수 있습니다
use Knik Binn Encoder BinnEncoder ;
use Symfony Component Serializer Serializer ;
$ encoders = [ new BinnEncoder ()];
$ serializer = new Serializer ([], $ encoders );
$ serializer -> serialize ( "x40xD0x06" , ' binn ' ); $ binn = new BinnList ();
$ binn -> addUint8 ( 4 );
$ binn -> addInt16 (- 8875 );
$ binn -> addStr ( ' text ' );
$ serialized = $ binn -> serialize (); // xE0x0Fx03x20x04x41xDDx55xA0x04textx00 $ array = [ 2 , true , [ 123 , - 456 , 789 ]];
$ binn = new BinnList ();
// xE0x11x03x20x02x01xE0x0Bx03x20x7Bx41xFEx38x40x03x15
$ serialized = $ binn -> serialize ( $ array );