php uniqid根据时间生成唯一的ID

标签: phpuniqidmt_rand随机字符串   时间:2016-06-21
php uniqid函数基于当前时间的微妙来生成唯一的ID,只是说基于当前时间,但是没有说明与当前时间的关系如何,本文章向大家介绍php uniqid函数的使用方法和实例。

uniqid函数基本语法:

string uniqid ( [string prefix [, bool more_entropy]] )

可定义唯一ID的前缀与长度。

 

uniqid函数用法

uniqid() 函数基于以微秒计的当前时间,生成一个唯一的 ID。

注释:由于基于系统时间,通过该函数生成的 ID 不是最佳的。如需生成绝对唯一的 ID,可以结合md5()函数生成一个唯一ID

1、生成一个唯一ID:

<?php  
echo uniqid();  //输出结果:576936337ea41
?> 

2、生成多个唯一ID

<?
$id = uniqid();
echo "$id<br/>";////输出结果:576936f8c1578

$id = uniqid();
echo "$id<br/>";////输出结果:576936f8c1957

$id = uniqid();
echo "$id<br/>";////输出结果:576936f8c1d40
?>

由以上两个实例可以看出uniqid始终是一个不断变化的长度为13的十六进制数,而且根据计算可以断定,uniqid就是当前时间精确到微秒再乘以1048576(2的20次幂)最后转换为十六进制得到的。再看下面一个实例:

3、结合md5()函数生成一个唯一ID

<?php  
echo md5(uniqid());  //输出结果:67949b993682fed7fb4659e43d1b46ef
?> 

使用uniqid()函数生成唯一ID既能用于生成临时性ID也能用于生成永久性唯一ID(存储数据库)。

另外, 可以在uniqid()的两个参数上面实现不同系统之间的唯一值, 第一个参数: 前缀, 可以在不同server上指定不同的server; 

第二个参数, 返回更多的熵, true时返回23个字符.

原文地址:http://www.manongjc.com/article/1043.html