<?php
$time = floor(microtime(true) * 1000);
function generate($time) {
$prefix_length = random_int(1, 18);
$prefix = random_int(0, bindec(str_repeat('1', $prefix_length)));
$suffix_length = 18 - $prefix_length;
$suffix = random_int(0, bindec(str_repeat('1', $suffix_length)));
$uid = 1 << 45 + $prefix_length + $suffix_length | $prefix << 45 + $suffix_length | $time << $suffix_length | $suffix;
$uid = dechex($uid);
$uid = hex2bin($uid);
$uid = base64_encode($uid);
$uid = str_replace(['=', '+', '/'], ['', '-', '_'], $uid);
return $uid;
}
var_dump(generate($time));
var_dump(generate($time));
var_dump(generate($time));
var_dump(generate($time));
var_dump(generate($time));
preferences:
36.95 ms | 402 KiB | 5 Q