Files
BE_IBL/application/helpers/uuid_helper.php
2026-04-15 15:16:12 +07:00

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)
);
}
}