Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /**************
- This code is public domain.
- This function increments a case-sensitive alphanumeric
- number. It will use as many digits as you give it. If
- it tries to increment a number that is at it's maximum
- (eg "ZZ"), it returns boolean false.
- **************/
- define('NUMBER_START', ord('0'));
- define('NUMBER_END', ord('9'));
- define('LOWER_START', ord('a'));
- define('LOWER_END', ord('z'));
- define('UPPER_START', ord('A'));
- define('UPPER_END', ord('Z'));
- function incrementNumber($number) {
- if (strlen($number) == 0)
- return false;
- $number = str_split($number);
- $last = ord(array_pop($number));
- switch ($last) {
- case NUMBER_END:
- $last = LOWER_START;
- break;
- case LOWER_END:
- $last = UPPER_START;
- break;
- case UPPER_END:
- $last = NUMBER_START;
- $inc = incrementNumber(implode($number));
- if ($inc === false)
- return false;
- $number = str_split($inc);
- break;
- default:
- $last++;
- }
- $last = chr($last);
- $number[] = $last;
- return implode($number);
- }
- // Usage
- echo incrementNumber('0000'); // outputs "0001"
- echo incrementNumber('0aB4'); // outputs "0aB5"
- echo incrementNumber('0aB9'); // outputs "0aBa"
- echo incrementNumber('0aBz'); // outputs "0aBA"
- echo incrementNumber('0aBZ'); // outputs "0aC0"
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement