<?php
$table ="0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";
$table = str_shuffle($table);
//$table = "6Qw7fWXgTjkcordIKLvBstRSD3n904U5e8ZMOPluhJmiNxVyzY12AFGHabpCEq"; //映射表
$e = _10to62("159046587215904658721590465872159046587215904658721590465872", $table);
var_dump($e);
$d = _62to10($e, $table);
var_dump($d);
/**
* 将十进制转成62进制
* @param $n
*/
function _10to62($n,$table){
$res = "";
while(($a=bcdiv($n, 62)) > 0)
{
$res = $table[bcsub($n, bcmul(62, $a))].$res;
$n = $a;
}
$res = $table[bcsub($n, bcmul(62, $a))].$res;
return $res;
}
/**
* 将 62进制转成10进制
*/
function _62to10($m,$table){
$res = 0;
for($n=strlen($m),$i=$n-1;$i>=0;$i--){
$res = bcadd($res, bcmul(strpos($table,$m[$n-$i-1]), bcpow(62, $i)));
}
return $res;
}