diff --git a/src/includes/functions.php b/src/includes/functions.php index 7a1545db..58c2fb97 100644 --- a/src/includes/functions.php +++ b/src/includes/functions.php @@ -781,3 +781,29 @@ function timestamp2LdapDate($value, $timezone=null, $format=null) { return dateTime2LdapDate($datetime, $timezone, $format); return false; } + +/** + * Generate an UUID + * @return string + */ +function generate_uuid() { + return sprintf( '%04x%04x-%04x-%04x-%04x-%04x%04x%04x', + // 32 bits for "time_low" + mt_rand( 0, 0xffff ), mt_rand( 0, 0xffff ), + + // 16 bits for "time_mid" + mt_rand( 0, 0xffff ), + + // 16 bits for "time_hi_and_version", + // four most significant bits holds version number 4 + mt_rand( 0, 0x0fff ) | 0x4000, + + // 16 bits, 8 bits for "clk_seq_hi_res", + // 8 bits for "clk_seq_low", + // two most significant bits holds zero and one for variant DCE1.1 + mt_rand( 0, 0x3fff ) | 0x8000, + + // 48 bits for "node" + mt_rand( 0, 0xffff ), mt_rand( 0, 0xffff ), mt_rand( 0, 0xffff ) + ); +}