eric-chau/bijective

简单的双射函数(基于n的编码/解码)用于PHP。

v1.0.0 2016-02-04 22:03 UTC

This package is not auto-updated.

Last update: 2024-09-14 18:31:35 UTC


README

Bijective 可以将任何整数编码为基于n的字符串,其中n为字母表长度。如果您想创建自己的URL缩短器,这可能会非常有用。

<?php

require_once __DIR__ . '/vendor/autoload.php';

$bijective = new \Jarvis\Math\Bijective();

echo $bijective->alphabet(); // print 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789'

echo $bijective->encode('64'); // print 'bc'

echo $bijective->decode('ba'); // print '62'

$bijective = new \Jarvis\Math\Bijective('azerty');

echo $bijective->alphabet(); // print 'azerty'

您需要了解的事项

  • Bijective 的默认字母表为 abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789。您可以通过将其传递给构造函数来定义自己的字母表。
  • 如果您尝试解码不支持的字符,Bijective 将抛出异常。
  • 如果您尝试解码以零值(您定义的字母表中的第一个字符)开头的字符串,Bijective 将抛出异常(例如,给定字母表 '!?:;',零值是 '!')。
  • Bijective 抛出的每个异常都是 \LogicException 的实例。