- array_slice: documentation ( source)
- implode: documentation ( source)
- strrev: documentation ( source)
- str_split: documentation ( source)
<?PHP
function inc_uuid($uuid) {
$n = '';
$c = 0;
foreach (str_split(strrev($uuid)) as $s) {
$c++;
$s++;
if ($s === 'aa') {
$n = 'a'.$n;
continue;
}
elseif ($s === 10) {
$n .= 'a';
continue;
}
else {
$n = $s.$n;
break;
}
}
$x = implode(array_slice(str_split($uuid), 0, strlen($uuid-$c)+1));
$n = $x.$n;
return $n;
}
function get_uuid() {
global $__uuid;
if ($__uuid == NULL) {
return '0a000000';
}
else return inc_uuid($__uuid);
}
echo inc_uuid('a2b9');
?>