From 07497465a65f7c9543265c7f7cfa12e809c44659 Mon Sep 17 00:00:00 2001 From: Dominique Fournier Date: Fri, 5 May 2017 12:58:54 +0000 Subject: [PATCH] Add UUID creation feature git-svn-id: https://svn.fournier38.fr/svn/ProgSVN/trunk@3589 bf3deb0d-5f1a-0410-827f-c0cc1f45334c --- uuid.php | 35 +++++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) create mode 100644 uuid.php diff --git a/uuid.php b/uuid.php new file mode 100644 index 0000000..b190ef0 --- /dev/null +++ b/uuid.php @@ -0,0 +1,35 @@ + */ + +/** Generate a UUID v4 + */ +class uuid +{ + /** Based on http://php.net/manual/fr/function.uniqid.php#94959 + */ + public static function 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) + ); + } +}