<?php
$str = "Uo9kOMrb8Zfx8cHXT65JPNGYEbiYq90YNImYPdLkOo8w8Y8i8cPrRcD1ScSYEY8YB29ZRsvaQNHfRsuYEY91JaGYB29cTMniNsLkT79v8ZfcOMnpPImYRcywABgokJoH7JCmjZcolhT";
function base62decode($data) {
$outstring = '';
$l = strlen($data);
for ($i = 0; $i < $l; $i += 11) {
$chunk = substr($data, $i, 11);
$outlen = floor((strlen($chunk) * 6)/8); //6bit/char in, 8bits/char out, round down
$y = gmp_strval(gmp_init(ltrim($chunk, '0'), 62), 16); //gmp doesn't like leading 0s
$pad = str_pad($y, $outlen * 2, '0', STR_PAD_LEFT); //double output length as as we're going via hex (4bits/char)
$outstring .= pack('H*', $pad); //same as hex2bin
}
return $outstring;
}
echo(base62decode($str));
preferences:
36.86 ms | 402 KiB | 5 Q