<?php
define('ALNUM_MAP', str_split('abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789'));
define('DIGIT_MAP', array_flip(ALNUM_MAP));
function numToAlnum($num) {
return strtr($num, ALNUM_MAP);
}
function alnumToNum($alphaNum) {
return strtr($alphaNum, DIGIT_MAP);
}
$ids = ['4440', '464426', '43304441302845', '262018191701180', '273381111186152545352'];
foreach ($ids as $id) {
$idLength = strlen($id);
$alphaNum = numToAlnum($id);
$alNumLength = strlen($alphaNum);
$backToId = alnumToNum($alphaNum);
var_export(['original' => $id, 'encoded' => $alphaNum, 'decoded' => $backToId, 'reduction' => $idLength - $alNumLength]);
echo "\n---\n";
}
preferences:
57.76 ms | 402 KiB | 5 Q