十进制和基数之间的转换36

Yoo*_*one 5 php base36

我想用PHP转换基数为36的数字.该函数base_convert无法正常工作,因为我想转换大数字:如果我将它从基数36再次转换为十进制,我不会得到我的初始数字.

我试过在多个网站上给出了一些功能,但我从来没有得到相同的结果.此外,这两个网站(在Javascript中)给出相同的结果:

例如1010701001118000000000000000必须转换为3IZS0ZE1RQ68W8SSW4.

以下是我尝试过的功能(哪些功能不起作用):

Nik*_*iko 9

以下是使用维基百科上的算法的两个简单函数,而使用bcmath来计算甚至非常大的数字:

function fromDecimalToBase($in, $to) {
    $in = (string) $in;
    $out = '';

    for ($i = strlen($in) - 1; $i >= 0; $i--) {
        $out = base_convert(bcmod($in, $to), 10, $to) . $out;
        $in = bcdiv($in, $to);
    }

    return preg_replace('/^0+/', '', $out);
}

function fromBaseToDecimal($in, $from) {
    $in = (string) $in;
    $out = '';

    for ($i = 0, $l = strlen($in); $i < $l; $i++) {
        $x = base_convert(substr($in, $i, 1), $from, 10);
        $out = bcadd(bcmul($out, $from), $x);
    }

    return preg_replace('/^0+/', '', $out);
}
Run Code Online (Sandbox Code Playgroud)

但是,我得到3izs0ze1rq66tifrpc你提供的号码 - 也许你的转换错了吗?