3v4l.org

run code in 300+ PHP versions simultaneously
<?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