"PHP uniqid()"의 두 판 사이의 차이

27번째 줄: 27번째 줄:
return date("Y-m-d H:i:s",hexdec(substr($uniqid,0,8)));
return date("Y-m-d H:i:s",hexdec(substr($uniqid,0,8)));
}
}
echo uniqid2datetime('4b3403665fea6');
 
echo uniqid2datetime('5ebe03859ec4b');
echo uniqid2datetime('5ebe03859fbe2');
</source>
</source>



2020년 9월 3일 (목) 11:03 판

  다른 뜻에 대해서는 함수 uniqid() 문서를 참조하십시오.

1 개요

PHP uniqid()
  • 유니크 ID를 생성하는 PHP 함수[1]
  • 기본은 16진수 13자리
앞 8자리는 초단위까지, 뒤 5자리는 마이크로초단위를 16진수로 바꾼 것
  • 2번째 인수로 true를 넣으면 16진수 23자리가 됨
  • 실상은 마이크로초 단위의 유닉스 타임스탬프( microtime() ) 값을 변형한 것임
그렇기 때문에 반복생성해보면 앞부분이 잘 바뀌지 않음
  • 매개변수를 넣으면 접두어로 붙음
echo uniqid(); # 4b3403665fea6 (예시)
echo uniqid('hello_'); # hello_56fdc64b3ea94 (예시)
echo uniqid()."\n";
echo uniqid()."\n";
echo uniqid()."\n";

2 생성일시 확인

function uniqid2datetime($uniqid) {
	return date("Y-m-d H:i:s",hexdec(substr($uniqid,0,8)));
}

echo uniqid2datetime('5ebe03859ec4b');
echo uniqid2datetime('5ebe03859fbe2');

3 직접 제작

  • uniqid()와 동일한 기능을 가지는 uniqid2()를 만들어 보았다.
  • 내장 함수 uniqid()가 있으므로 uniqid2()를 실제로 사용할 일은 없겠지만, 작동원리를 이해할 수 있다.
function uniqid2() {
	list($u, $s) = explode(" ", microtime());
	return dechex($s).dechex(substr($u,2,6));
}
for($i=0; $i<2; $i++) {
	echo 'origin: ' . uniqid() . PHP_EOL;
	echo 'custom: ' . uniqid2() . PHP_EOL;	
}

4 같이 보기

5 참고

  1. 단, 완벽하게(100%) 유일함을 보장하지는 않음
문서 댓글 ({{ doc_comments.length }})
{{ comment.name }} {{ comment.created | snstime }}