25 lines
770 B
PHP
25 lines
770 B
PHP
<?php
|
|
defined('BASEPATH') OR exit('No direct script access allowed');
|
|
|
|
/**
|
|
* UUID versi 4 (RFC 4122) string 36 karakter: 8-4-4-4-12 hex.
|
|
* Dipakai untuk FormRiwayatPasienUUID dan tempat lain yang butuh UUID string konsisten.
|
|
* Hindari vsprintf("%s%s-%s-%s-%s%s%s") tanpa satu %s di grup ke-4 (format salah, grup akhir jadi 16 hex).
|
|
*/
|
|
if (!function_exists('lab_uuid_v4')) {
|
|
function lab_uuid_v4() {
|
|
$data = random_bytes(16);
|
|
$data[6] = chr(ord($data[6]) & 0x0f | 0x40);
|
|
$data[8] = chr(ord($data[8]) & 0x3f | 0x80);
|
|
$h = bin2hex($data);
|
|
return sprintf(
|
|
'%s-%s-%s-%s-%s',
|
|
substr($h, 0, 8),
|
|
substr($h, 8, 4),
|
|
substr($h, 12, 4),
|
|
substr($h, 16, 4),
|
|
substr($h, 20, 12)
|
|
);
|
|
}
|
|
}
|