您的位置:首页 > 编程语言 > PHP开发

将10进制整数转为64进制形式的PHP实现

2017-11-13 14:44 176 查看
/**
* @param int $integer 10进制正整数
* @return string 64进制形式
*/
function decimal_to_base64($integer)
{
$chars_map = [
0  => '0',
1  => '1',
2  => '2',
3  => '3',
4  => '4',
5  => '5',
6  => '6',
7  => '7',
8  => '8',
9  => '9',
10 => 'a',
11 => 'b',
12 => 'c',
13 => 'd',
14 => 'e',
15 => 'f',
16 => 'g',
17 => 'h',
18 => 'i',
19 => 'j',
20 => 'k',
21 => 'l',
22 => 'm',
23 => 'n',
24 => 'o',
25 => 'p',
26 => 'q',
27 => 'r',
28 => 's',
29 => 't',
30 => 'u',
31 => 'v',
32 => 'w',
33 => 'x',
34 => 'y',
35 => 'z',
36 => 'A',
37 => 'B',
38 => 'C',
39 => 'D',
40 => 'E',
41 => 'F',
42 => 'G',
43 => 'H',
44 => 'I',
45 => 'J',
46 => 'K',
47 => 'L',
48 => 'M',
49 => 'N',
50 => 'O',
51 => 'P',
52 => 'Q',
53 => 'R',
54 => 'S',
55 => 'T',
56 => 'U',
57 => 'V',
58 => 'W',
59 => 'X',
60 => 'Y',
61 => 'Z',
62 => '_',
63 => '$',
];
$dividend = count($chars_map);

$base64_chars = [];
while ($integer > 0) {
$r = $integer % $dividend;
$integer = ($integer - $r) / $dividend;
$base64_chars[] = $chars_map[ $r ];
}

return join('', array_reverse($base64_chars));
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: