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
Parameters접두사
유용한 매개변수입니다. 예를 들어 여러 호스트에 있는 경우 동일한 마이크로초 내에 고유 ID가 생성될 수 있습니다. 접두사가 비어 있고, 반환된 문자열의 길이는 13입니다. more_entropy가 TRUE이면 반환된 문자열의 길이는 23입니다.
more_entropy
TRUE로 설정하면 uniqid()는 반환된 문자열 끝에 추가 엔트로피를 추가합니다(결합된 선형 합동 생성기를 사용하여). 고유 ID를 더욱 고유하게 만드세요.
이 메서드는 대량의 반복 데이터를 생성합니다. 다음 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 '<pre class="brush:php;toolbar:false">'; print_r($duplicates); echo ''; ?>
이 방법은 중복된 고유 식별자를 훨씬 적게 생성합니다.
<?php $units = array(); for($i=0;$i<1000000;$i++){ $units[] = uniqid('',true); } $values = array_count_values($units); $duplicates = []; foreach($values as $k=>$v){ if($v>1){ $duplicates[$k]=$v; } } echo '<pre class="brush:php;toolbar:false">'; print_r($duplicates); echo ''; ?>
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 '<pre class="brush:php;toolbar:false">'; print_r($duplicates); echo ''; ?>
위 내용은 PHP는 자동으로 고유 ID를 생성합니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!