>  기사  >  백엔드 개발  >  PHP는 자동으로 고유 ID를 생성합니다.

PHP는 자동으로 고유 ID를 생성합니다.

王林
王林앞으로
2019-09-12 17:43:013622검색

PHP는 자동으로 고유 ID를 생성합니다.

PHP uniqid() 함수를 사용하면 마이크로초 단위의 현재 타임스탬프를 기반으로 중복되지 않는 고유 식별자를 생성할 수 있습니다. 동시성이 높거나 간격이 매우 짧은 경우(예: 루프 코드) 중복된 데이터가 대량으로 나타납니다. 두 번째 매개변수를 사용해도 반복되기 때문에 가장 좋은 해결 방법은 md5 함수를 결합하여 고유 ID를 생성하는 것입니다.

Description

string uniqid ([ string $prefix = "" [, bool $more_entropy = false ]] )string uniqid ([ string $prefix = "" [, bool $more_entropy = false ]] )

获取一个带前缀、基于当前时间微秒数的唯一ID。

参数

prefix

有用的参数。例如:如果在多台主机上可能在同一微秒生成唯一ID。

prefix为空,则返回的字符串长度为13。more_entropy 为 TRUE,则返回的字符串长度为23。

more_entropy

현재의 마이크로초를 기반으로 하는 접두사가 포함된 고유 ID를 가져옵니다. 시간 .

Parameters
접두사

유용한 매개변수입니다. 예를 들어 여러 호스트에 있는 경우 동일한 마이크로초 내에 고유 ID가 생성될 수 있습니다. 접두사가 비어 있고, 반환된 문자열의 길이는 13입니다. more_entropy가 TRUE이면 반환된 문자열의 길이는 23입니다.

more_entropy

TRUE로 설정하면 uniqid()는 반환된 문자열 끝에 추가 엔트로피를 추가합니다(결합된 선형 합동 생성기를 사용하여). 고유 ID를 더욱 고유하게 만드세요.

PHP uniqid() 비반복 고유 식별자 생성을 위한 방법 1

이 메서드는 대량의 반복 데이터를 생성합니다. 다음 PHP 코드를 실행하면 배열 인덱스가 생성된 고유 식별자이고 해당 요소가 표시됩니다. 값은 고유 식별자가 반복되는 횟수입니다.

<?php        
$units = array();        
for($i=0;$i<1000000;$i++){                
$units[] = uniqid();        
}        
$values  = array_count_values($units);        
$duplicates = [];        
foreach($values as $k=>$v){                
if($v>1){                        
$duplicates[$k]=$v;                
}        
}        
echo &#39;<pre class="brush:php;toolbar:false">&#39;;        
print_r($duplicates);        
echo &#39;
'; ?>

PHP uniqid() 고유한 고유 식별자를 생성하는 방법 2

이 방법은 중복된 고유 식별자를 훨씬 적게 생성합니다.

<?php        
$units = array();        
for($i=0;$i<1000000;$i++){                
$units[] = uniqid(&#39;&#39;,true);        
}        
$values  = array_count_values($units);       
$duplicates = [];        
foreach($values as $k=>$v){                
if($v>1){                        
$duplicates[$k]=$v;                
}        
}        
echo &#39;<pre class="brush:php;toolbar:false">&#39;;        
print_r($duplicates);        
echo &#39;
'; ?>

PHP uniqid() 고유한 고유 식별자를 생성하는 방법 3

이 방법으로 생성된 고유 식별자에는 중복이 없습니다. 🎜
<?php        
$units = array();        
for($i=0;$i<1000000;$i++){                
$units[]=md5(uniqid(md5(microtime(true)),true));        
}        
$values  = array_count_values($units);        
$duplicates = [];        
foreach($values as $k=>$v){                
if($v>1){                        
$duplicates[$k]=$v;                
}        
}        
echo &#39;<pre class="brush:php;toolbar:false">&#39;;        
print_r($duplicates);        
echo &#39;
'; ?>🎜🎜PHP uniqid() 비반복 고유 식별자 생성 방법 4🎜🎜session_create_id() 함수를 사용하여 고유 식별자를 생성해본 결과, session_create_id()를 주기적으로 1억 번 호출하더라도 중복이 없습니다. 🎜php session_create_id()는 PHP 7.1의 새로운 함수입니다. 세션 ID를 생성하는 데 사용됩니다. 하위 버전에서는 사용할 수 없습니다. 🎜🎜위 내용은 참고용입니다! 🎜🎜추천 비디오 튜토리얼: 🎜PHP 비디오 튜토리얼🎜🎜

위 내용은 PHP는 자동으로 고유 ID를 생성합니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 cnblogs.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제
이전 기사:PHP 배열 순서 섞기다음 기사:PHP 배열 순서 섞기