首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在PHP中生成唯一ID

问在PHP中生成唯一ID
EN

Stack Overflow用户
提问于 2008-10-08 02:43:00
回答 3查看 15.5K关注 0票数 15

我正在尝试在php中生成一个唯一的ID,以便在FS上无冲突地存储用户上传的内容。我使用的是php,目前这个小代码段负责生成UID:

代码语言:javascript
复制
$id = tempnam (".", "");
unlink($id);
$id = substr($id, 2);

这段代码很可怕:它在FS上创建一个临时文件并删除它,只保留生成的字符串中相关的唯一部分。

有没有更好的方法来做到这一点,最好没有任何外部依赖?

非常感谢!

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2008-10-08 02:45:25

代码语言:javascript
复制
string uniqid ([ string $prefix [, bool $more_entropy ]] )

根据当前时间(以微秒为单位)获取带前缀的唯一标识符。

代码语言:javascript
复制
USAGE: $id = uniqid(rand(), true);
票数 19
EN

Stack Overflow用户

发布于 2012-01-26 05:45:41

因为uniqid()和rand()都是基于当前时间的函数,所以rand()几乎不会增加任何熵,因为时间在两次调用之间只会有很小的变化。

只要使用more_entropy选项,就不会在单个服务器中发生冲突。如果使用群集,请确保包含不同服务器的前缀。

票数 9
EN

Stack Overflow用户

发布于 2008-10-08 02:44:46

uniqid()是您在大多数实际情况下所需要的。

你可以通过在它后面添加一个大的随机数来使它变得更加"uniq“。

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/181159

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档