php自动生成不重复的id-php教程

资源魔 77 0

PHP uniqid()函数可用于天生没有反复的惟一标识符,该函数基于微秒级以后工夫戳。正在高并发或许距离时长极短(如轮回代码)的状况下,会呈现年夜量反复数据。即便应用了第二个参数,也会反复,最佳的计划是连系md5函数来天生惟一ID。

阐明

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

猎取一个带前缀、基于以后工夫微秒数的惟一ID。

参数

prefix

有用的参数。例如:假如正在多台主机上可能正在同一微秒天生惟一ID。

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

more_entropy

假如设置为 TRUE,uniqid() 会正在前往的字符串末端添加额定的煽(应用combined linear congruential generator)。 使患上惟一ID更具惟一性。

PHP uniqid() 天生没有反复惟一标识办法一
这类办法会孕育发生年夜量的反复数据,运转以下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>';        
print_r($duplicates);        
echo '</pre>';
?>

PHP uniqid() 天生没有反复惟一标识办法二
这类办法天生的惟一标识反复量显著缩小。

<?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>';        
print_r($duplicates);        
echo '</pre>';
?>

PHP uniqid() 天生没有反复惟一标识办法三
这类办法天生的惟一标识中不反复。

<?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>';        
print_r($duplicates);        
echo '</pre>';
?>

PHP uniqid() 天生没有反复惟一标识办法四
应用session_create_id()函数天生惟一标识符,通过实际测试发现,即便轮回挪用session_create_id()一亿次,都不呈现太重复。
php session_create_id()是php 7.1新增的函数,用来天生session id,低版本无奈应用。

以上内容仅供参考!

保举视频教程:PHP视频教程

以上就是php主动天生没有反复的id的具体内容,更多请存眷资源魔其它相干文章!

标签: php id php开发教程 php开发资料 php开发自学 不重复 自动生成

抱歉,评论功能暂时关闭!