Предполагая, что это единственные символы, которые вы хотите использовать:
0123456789abcdefghjkmnpqrstuvwxyz
Вы можете использовать base_convert()
и strtr()
для перевода определенных символов результата в нужные вам символы.
function mybase33($number) {
return str_pad(strtr(base_convert($number, 10, 33), [
'i' => 'j',
'j' => 'k',
'k' => 'm',
'l' => 'n',
'm' => 'p',
'n' => 'q',
'o' => 'r',
'p' => 's',
'q' => 't',
'r' => 'u',
's' => 'v',
't' => 'w',
'u' => 'x',
'v' => 'y',
'w' => 'z',
]), 5, '0', STR_PAD_LEFT);
}
echo "9 is ".mybase33(9)."\n";
echo "10 is ".mybase33(10)."\n";
echo "12 is ".mybase33(12)."\n";
echo "14 is ".mybase33(14)."\n";
echo "32 is ".mybase33(32)."\n";
echo "33 is ".mybase33(33)."\n";
echo "34 is ".mybase33(34)."\n";
Вывод:
9 is 00009
10 is 0000a
12 is 0000c
14 is 0000e
32 is 0000z
33 is 00010
34 is 00011
https://3v4l.org/8YtaR
Пояснение
В выводе base_convert()
используются следующие символы:
0123456789abcdefghijklmnopqrstuvw
strtr()
преобразует определенные символы этого вывода в:
0123456789abcdefghjkmnpqrstuvwxyz