임시 캐시 파일, 임시 변수, 임시 보안 코드 등 업무에 고유 ID가 사용되는 시나리오는 많습니다.
uniqid() 함수는 마이크로초 단위의 현재 시간을 기준으로 고유 ID를 생성합니다. 고유 ID를 생성하는 것은 미묘한 시간에 묶여 있기 때문에 생성된 ID의 고유성은 매우 안정적입니다.
생성된 고유 ID는 기본적으로 13자 길이의 문자열을 반환합니다. MD5() 함수와 결합하면 생성된 고유 ID가 임의 ID보다 더 안정적일 수 있다는 것입니다. 정렬, 특히 데이터베이스에 저장해야 하는 일부 값을 구현했습니다. 물론 여기에 임의의 숫자를 추가할 수도 있습니다.
다음은 주로 고유 ID를 생성하는 4가지 방법을 소개합니다.
1.md5(time().mt_rand(1,1000000))
참고: 이 방법에는 특정 중복 가능성이 있습니다
2. 함수 uniqid()
uniqid() 함수는 현재 시간(마이크로초)을 기준으로 고유 ID를 생성합니다.
echo uniqid(); echo uniqid(); echo uniqid(); OUTPUT: 5a4b62dd4aeea 5a4b62dd4aff7 5a4b62dd4b069
w3school 참조 매뉴얼에는 다음과 같은 문장이 있습니다. "시스템 시간을 기준으로 하기 때문에 이 함수로 생성된 ID는 최적이 아닙니다. 절대적으로 고유한 ID를 생성하려면 md5() 함수를 사용하십시오."
(무료 비디오 튜토리얼: php 비디오 튜토리얼)
3. md5() 함수를 결합하여 고유 ID
echo md5(uniqid()); OUTPUT: 0ac3d6e99b7f5290c93d730eaf9d7d94
4를 생성합니다. 공식 사례
public function create_guid($namespace = '') { static $guid = ''; $uid = uniqid("", true); $data = $namespace; $data .= $_SERVER['REQUEST_TIME']; $data .= $_SERVER['HTTP_USER_AGENT']; $data .= $_SERVER['LOCAL_ADDR']; $data .= $_SERVER['LOCAL_PORT']; $data .= $_SERVER['REMOTE_ADDR']; $data .= $_SERVER['REMOTE_PORT']; $hash = strtoupper(hash('ripemd128', $uid . $guid . md5($data))); $guid = '{' . substr($hash, 0, 8) . '-' . substr($hash, 8, 4) . '-' . substr($hash, 12, 4) . '-' . substr($hash, 16, 4) . '-' . substr($hash, 20, 12) . '}'; return $guid; }
는 유사한 결과를 반환합니다. -6CFC-4B5C-9FEDAAF2EFD7
관련 권장 사항: php 튜토리얼
위 내용은 PHP에서 고유 ID를 생성하는 네 가지 방법 소개의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!