xobotyi/basen

PHP 的文本和整数编码工具,无扩展依赖。Base32, Base58, Base64 等更多!

资助包维护!
Patreon

v1.0.0 2018-06-29 19:52 UTC

This package is auto-updated.

Last update: 2024-09-22 00:41:07 UTC


README

License PHP 7 ready Build Status Codacy Grade Codacy Coverage Latest Stable Version Total Downloads

关于

PHP 是一种伟大的语言,但不幸的是,它只提供一种文本编码(base64),而且甚至不是 URL 安全的。而且没有直接的方法来改变它的字母表。
BaseN 解决了这个问题,并实现了常见二进制到文本算法,其字母表完全覆盖与其长度相对应的位数。还有一个粗略的算法,它会单独编码每个字节,它不够紧凑,但保证了使用给定字母表的编码。
此外,它还提供了编码和解码整数本身的方法,而不是它们的文本表示。

要求

安装

使用 composer 安装

composer require xobotyi/basen

用法

use xobotyi\basen\BaseN;
use xobotyi\basen\Base58;

// use it for something usual
$base8 = new BaseN('01234567', false, false, false);
echo $base8->encode(16) . "\n"; // 142330
echo $base8->encodeInt(16) . "\n"; // 20

// or create your own encoder with own alphabet if needed
$myOwnEncoder = new BaseN('a123d8e4fiwnmqkl', false, true, true);
echo $myOwnEncoder->encode(16) . "\n"; // 313e
echo $myOwnEncoder->encodeInt(16) . "\n"; // 1a

// predefined encoder
echo Base58::encode(16) . "\n"; // 3hC
// or, with alternative alphabet
echo Base58::encode(16, Base58::ALPHABET_RIPPLE) . "\n"; // hkD
echo Base58::encodeInt(16) . "\n"; // G

内置编码

BaseN 提供了几个类,实现了大多数流行的编码