petrknap / binary
用于处理二进制数据和对象的库
v4.0.0
2024-04-27 09:47 UTC
Requires
- php: >=8.1
- petrknap/shorts: ^2.0
Requires (Dev)
- ext-mbstring: *
- ext-zlib: *
- nunomaduro/phpinsights: ^2.11
- phpstan/phpstan: ^1.10
- phpunit/phpunit: ^10.5
- squizlabs/php_codesniffer: ^3.7
Suggests
- ext-igbinary: Required to serialize data via igbinary
- ext-mbstring: Required to bite bytes
- ext-zlib: Required to compress data
README
这是一个用于在PHP中处理二进制数据和对象的简单库。以下示例提供更多信息,或查看Encoder
、Decoder
、Serializer
和Byter
。
use PetrKnap\Binary\Binary; $data = base64_decode('hmlpFnFwbchsoQARSibVpfbWVfuwAHLbGxjFl9eC8fiGaWkWcXBtyGyhABFKJtWl9tZV+7AActsbGMWX14Lx+A=='); $encoded = Binary::encode($data)->checksum()->zlib()->base64(urlSafe: true)->getData(); $decoded = Binary::decode($encoded)->base64()->zlib()->checksum()->getData(); printf('Data was coded into `%s` %s.', $encoded, $decoded === $data ? 'successfully' : 'unsuccessfully');
use PetrKnap\Binary\Binary; $data = [ 'type' => 'image/png', 'data' => base64_decode('iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAA1JREFUGFdj+L+U4T8ABu8CpCYJ1DQAAAAASUVORK5CYII='), ]; $serialized = Binary::serialize($data); $unserialized = Binary::unserialize($serialized); printf('Data was serialized into `%s` %s.', base64_encode($serialized), $unserialized === $data ? 'successfully' : 'unsuccessfully');
use PetrKnap\Binary\Binary; $data = base64_decode('hmlpFnFwbchsoQARSibVpfbWVfuwAHLbGxjFl9eC8fiGaWkWcXBtyGyhABFKJtWl9tZV+7AActsbGMWX14Lx+A=='); $sha1 = sha1($data, binary: true); $md5 = md5($data, binary: true); $unbitten = Binary::unbite($sha1, $md5, $data); [$sha1Bite, $md5Bite, $dataBite] = Binary::bite($unbitten, 20, 16); printf( 'Hashes and data was unbitten into `%s` %s.', base64_encode($unbitten), $sha1Bite === $sha1 && $md5Bite === $md5 && $dataBite === $data ? 'successfully' : 'unsuccessfully', );
运行composer require petrknap/binary
进行安装。您可以通过捐赠来支持此项目。该项目遵循LGPL-3.0-or-later
协议。