# "convert base64 to base62 (without special characters)" Code Answer

1
``````function base62encode(\$data) {
\$outstring = '';
\$l = strlen(\$data);
for (\$i = 0; \$i < \$l; \$i += 8) {
\$chunk = substr(\$data, \$i, 8);
\$outlen = ceil((strlen(\$chunk) * 8)/6); //8bit/char in, 6bits/char out, round up
\$x = bin2hex(\$chunk);  //gmp won't convert from binary, so go via hex
\$w = gmp_strval(gmp_init(ltrim(\$x, '0'), 16), 62); //gmp doesn't like leading 0s
\$pad = str_pad(\$w, \$outlen, '0', str_pad_left);
\$outstring .= \$pad;
}
return \$outstring;
}

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;
}

\$str62 = base62_encode(base64_decode(\$str64)) // \$str64 = our string base64 encoded
``````

all credits go to `marcus bointon`.

By John Clements on March 14 2022

## Answers related to “convert base64 to base62 (without special characters)”

Only authorized users can answer the Search term. Please sign in first, or register a free account.