web3p/rlp

PHP中的递归长度前缀编码。

维护者

详细信息

github.com/web3p/rlp

源代码

问题

0.3.5 2022-04-27 06:14 UTC

This package is auto-updated.

Last update: 2024-08-27 11:06:00 UTC


README

PHP codecov Licensed under the MIT License

PHP中的递归长度前缀编码。

安装

设置最小稳定性为dev

composer require web3p/rlp

用法

RLP编码

use Web3p\RLP\RLP;

$rlp = new RLP;
// c483646f67
$encoded = $rlp->encode(['dog']);

// 83646f67
$encoded = $rlp->encode('dog');

RLP解码

use Web3p\RLP\RLP;
use Web3p\RLP\Types\Str;

$rlp = new RLP;
$encoded = $rlp->encode(['dog']);

// only accept 0x prefixed hex string
$decoded = $rlp->decode('0x' . $encoded);

// show 646f67
echo $decoded[0];

// show dog
echo hex2bin($decoded[0]);

// or you can
echo Str::decodeHex($decoded[0]);

API

Web3p\RLP\RLP

encode

返回给定输入的递归长度前缀编码。

encode(mixed $inputs)

混合输入 - 字符串、整数或数字字符串的数组。

注意:输出不是以零为前缀。

示例
  • 编码字符串数组。
use Web3p\RLP\RLP;

$rlp = new RLP;
$encoded = $rlp->encode(['web3p', 'ethereum', 'solidity']);

decode

返回给定数据的递归长度前缀解码数组。

decode(string $input)

字符串输入 - 递归长度前缀编码的字符串。

注意:输出不是以零为前缀。

示例
  • 解码递归长度前缀编码的字符串。
use Web3p\RLP\RLP;
use Web3p\RLP\Types\Str;

$rlp = new RLP;
$encoded = $rlp->encode(['web3p', 'ethereum', 'solidity']);
$decoded = $rlp->decode('0x' . $encoded);

// echo web3p
echo hex2bin($decoded[0]);

// echo ethereum
echo hex2bin($decoded[1]);

// echo solidity
echo hex2bin($decoded[2]);

// or you can
echo Str::decodeHex($decoded[0]);
echo Str::decodeHex($decoded[1]);
echo Str::decodeHex($decoded[2]);

许可

MIT