-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathBiglionGenerator.php
63 lines (58 loc) · 1.2 KB
/
BiglionGenerator.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
<?
/*
* @author La2ha (http://la2ha.ru)
* @email [email protected]
* */
class BiglionGenerator
{
private static $abc = array(
'Z' => 1,
1 => 2,
2 => 3,
3 => 4,
4 => 5,
5 => 6,
6 => 7,
7 => 8,
8 => 9,
9 => 'A',
'A' => 'B',
'B' => 'C',
'C' => 'D',
'D' => 'E',
'E' => 'F',
'F' => 'G',
'G' => 'H',
'H' => 'I',
'I' => 'J',
'J' => 'K',
'K' => 'L',
'L' => 'M',
'M' => 'N',
'N' => 'O',
'O' => 'P',
'P' => 'Q',
'Q' => 'R',
'R' => 'S',
'S' => 'T',
'T' => 'U',
'U' => 'V',
'V' => 'W',
'W' => 'X',
'X' => 'Y',
'Y' => 'Z'
);
public static function get_next($code)
{
$code_array = str_split($code);
$i = count($code_array);
$change_next = true;
while ($i > 0) {
$i--;
if ($code_array[$i] != end(self::$abc)) $change_next = false;
$code_array[$i] = self::$abc[$code_array[$i]];
if (!$change_next) break;
}
return implode('', $code_array);
}
}