현재 구형 브라우저를 사용 중입니다.

일부 또는 모든 기능이 작동하지 않을 수 있습니다.
브라우저를 최신으로 업데이트하여 주십시오.

Google Chrome 다운로드

프로그래밍 프로그래밍 PHP&JS UUID 얻기

    2  
(수정 )

PHP

function uuidv4(){
    // /proc/sys.... 리눅스 전용 명령어다.
    // PHP 서버는 리눅스를 쓰는 것이 거의 표준이기 때문에 일단 이것을 우선으로 사용.
	$uuid = @file_get_contents('/proc/sys/kernel/random/uuid'); 
	if ($uuid){
        $uuid = trim($uuid);
	} else {
        // /proc/sys/kernel/random/uuid 가 작동을 안 할 시 fallback 사용.
        // 윈도우를 쓸 때라든지...
        $data = random_bytes(16);

        $data[6] = chr(ord($data[6]) & 0x0f | 0x40); // set version to 0100
        $data[8] = chr(ord($data[8]) & 0x3f | 0x80); // set bits 6-7 to 10
				
        $uuid = vsprintf('%s%s-%s-%s-%s-%s%s%s', str_split(bin2hex($data), 4));
	}
	return $uuid;
}

 

Javascript 레거시 브라우저 지원 필요시:

function uuidv4(){
    if (self?.crypto?.randomUUID) {
        // 크롬 2021년 버전, 파이어폭스 2021년 버전 이상의 브라우저
        return crypto.randomUUID();
    } else {
        // 구형 브라우저, 2021년 이전의 브라우저
        return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function(c) {
            var r = Math.random() * 16 | 0, v = c == 'x' ? r : (r & 0x3 | 0x8);
            return v.toString(16);
        });
    }
}

 

Javascript 최신 브라우저만 지원할 경우:

function uuidv4(){
    return crypto.randomUUID();
}

 

 


구형 브라우저일 경우, 구형 지원에 머리 싸매지 말고 최신 브라우저 업데이트를 유도하는 창을 따로 띄우는 게 리소스도 덜 먹고 개발자 정신건강에 이롭다.

업데이트 유도창 띄우기:

if (!self?.crypto?.randomUUID) {
    // 크롬 2021년 버전, 파이어폭스 2021년 버전 이전의 브라우저는 업데이트 권장 알림을 띄운다.
    alert("브라우저를 업데이트해 주세요!!");
}
  



    프로그래밍 프로그래밍 프로그래밍

    프로그래밍 게시판입니다.

    매니저 부매니저