choval/lid

用于在数据库中标识行的长64位数字

v1.0.2 2020-08-18 01:19 UTC

This package is auto-updated.

Last update: 2024-09-18 10:30:39 UTC


README

LID (长ID) 是一个用于在数据库中标识行的64位数字。
专门用于数据库中的 BIGINT/LONGINT。包括校验和以验证数据。

注意:v1.x 与 v0.x 不兼容。

安装

composer require choval/lid^1.0

格式

它使用62进制构建

0123456789
abcdefghijklmnopqrstuvwxyz
ABCDEFGHIJKLMNOPQRSTUVWXYZ
  • 除了网页格式,请参阅网页

校验和(Damm)是第一个字符。

示例

NUM: 9223372036854775807
WEB: 75FE_KXVC_3KP2_6XC7
LID: 7aZl-8N0y-58M7

NUM: 8057322199735401981
WEB: 94V7_27P8_8CP6_54X1
LID: 99Bc-CvJ3-BrCR

NUM: 495653535173419733
WEB: 961_3H6_471H_P96H
LID: 9AC-66ri-lnk9

NUM: 3412381023195
WEB: 0_6H_5V91_7PXK
LID: 0-Y4L-x15V

NUM: 8954382094
WEB: 2_6XV4_PK4J
LID: 2-9L-ZFPE

NUM: 21398
WEB: 1_2H9V
LID: 1-5z8

NUM: 1024
WEB: 4_2E4
LID: 4-gw

Web

网页格式使用不同的进制。

虽然由于进制较短而长度更长,但更适合语音输入(跨方言)和更友好地处理OCR引擎的误差。

别名字符被替换。

0 - zero - alias: OoDQ
1 - one - alias: IiLl
2 - two - alias: Zz
3 - three
4 - four - alias: AYy
5 - five - alias: Ss
6 - six - alias: Gb
7 - seven - alias: T
8 - eight - alias: BRg
9 - nine - alias: q
C - charlie - alias c
E - echo - alias e
F - foxtrot - alias f
H - hotel - alias h
J - juliett - alias j
K - kilo - alias k
N - november - alias: Mmn
P - tango - alias: p
V - victor - alias: UuWw
X - xray - alias x

用法

/**
 * Basic usage
 */
$lid = new Lid( 21398 );
echo $lid->id();
// 1-5z8
echo $lid->web();
// 1_2H9V
echo $lid->number();
// 21398

/**
 * The constructor accepts an int, a LID or a Web LID
 */
$lid = new Lid( '1_2H9V' );
echo $lid->id();
// 1-5z8
echo $lid->web();
// 1_2H9V
echo $lid->number();
// 21398


/**
 * The constructor accepts long formats as well
 */
$lid = new Lid( '1000_0000_0000_2H9V' );
echo $lid->id();
// 1-5z8
echo $lid->web();
// 1_2H9V
echo $lid->number();
// 21398


/**
 * And the web format allows you to make mistakes with letters and nums
 */
$lid = new Lid( '1_zHqU' );
echo $lid->id();
// 1-5z8
echo $lid->web();
// 1_2H9V
echo $lid->number();
// 21398

许可

MIT,请参阅LICENSE