From 4ec57692760bdde9c0bfcfdc82e0821ed7f866ae Mon Sep 17 00:00:00 2001 From: Benjamin Renard Date: Mon, 20 Mar 2023 16:41:58 +0100 Subject: [PATCH] Add generate_uuid() helper function --- src/includes/functions.php | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) 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 ) + ); +}