> 백엔드 개발 > PHP 문제 > PHP에서 고유 ID를 생성하는 네 가지 방법 소개

PHP에서 고유 ID를 생성하는 네 가지 방법 소개

王林
풀어 주다: 2023-03-09 12:52:01
앞으로
19699명이 탐색했습니다.

PHP에서 고유 ID를 생성하는 네 가지 방법 소개

임시 캐시 파일, 임시 변수, 임시 보안 코드 등 업무에 고유 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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:csdn.net
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿