$b = random_bytes(16);
$b[6] = chr(ord($b[6]) & 0x0f | 0x40); // version 4
$b[8] = chr(ord($b[8]) & 0x3f | 0x80); // variant
$uuid = vsprintf('%s%s-%s-%s-%s-%s%s%s', str_split(bin2hex($b), 4));
$b = random_bytes(16);
$b[6] = chr(ord($b[6]) & 0x0f | 0x40); // version 4
$b[8] = chr(ord($b[8]) & 0x3f | 0x80); // variant
$uuid = vsprintf('%s%s-%s-%s-%s-%s%s%s', str_split(bin2hex($b), 4));