// RFC 4122 - UUID 4
function getUUID() {
// Generate 16 bytes (128 bits) random data
$data = random_bytes(16);
assert(strlen($data) == 16);
$data[6] = chr(ord($data[6]) & 0x0f | 0x40);
$data[8] = chr(ord($data[8]) & 0x3f | 0x80);
return vsprintf('%s%s-%s-%s-%s-%s%s%s', str_split(bin2hex($data), 4));
}
echo getUUID();
/*
run:
f3d42445-1fd9-45ea-b5ec-ee3ce5a1d50d
*/