PHP에서 고유 한 ID를 생성합니다
-
05-07-2019 - |
문제
충돌이없는 FS에 사용자를 지원하는 컨텐츠를 저장하기 위해 PHP에서 고유 ID를 생성하려고합니다. 나는 PHP를 사용하고 있으며 현재이 작은 스 니펫은 UID를 생성하는 책임이 있습니다.
$id = tempnam (".", "");
unlink($id);
$id = substr($id, 2);
이 코드는 끔찍합니다. FS에 임시 파일을 생성하고 생성 된 문자열의 관련 고유 한 부분 만 유지하여 삭제합니다.
외부 종속성이없는 더 좋은 방법이 있습니까?
고맙습니다!
해결책
string uniqid ([ string $prefix [, bool $more_entropy ]] )
마이크로 초의 현재 시간을 기준으로 접두사 고유 식별자를 가져옵니다.
USAGE: $id = uniqid(rand(), true);
다른 팁
Uniqid () 및 rand ()는 현재 시간을 기준으로 함수이므로 Rand ()는 엔트로피가 거의 추가되지 않으므로 시간은 각 호출 사이에 적은 양만 변경되므로 엔트로피가 거의 추가되지 않습니다.
당신이 사용하는 한 more_entropy
옵션, 단일 서버 내에서 충돌이 없어야합니다. 클러스터링을 사용하는 경우 서버간에 다른 접두사를 포함해야합니다.
Uniqid ()는 대부분의 실제 상황에서 찾고있는 것입니다.
이후에 큰 무작위 숫자를 추가하여 더 많은 "uniq"로 만들 수 있습니다.
제휴하지 않습니다 StackOverflow