产生一个独特的ID in PHP
-
05-07-2019 - |
题
我试图产生一个独特的ID in php为了存储用户上载内容FS没有冲突。我使用的php,而在目前这个小片段是负责生成UID:
$id = tempnam (".", "");
unlink($id);
$id = substr($id, 2);
这个代码是可怕的:它创建了一个临时文件上FS,并删除它,仅保留有关的唯一的部分产生串。
是否有更好的方式来做到这一点,最好没有任何外部的依赖?
谢谢!
解决方案
string uniqid ([ string $prefix [, bool $more_entropy ]] )
根据当前时间(以微秒为单位)获取带前缀的唯一标识符。
USAGE: $id = uniqid(rand(), true);
其他提示
由于uniqid()和rand()都是基于当前时间的函数,因此rand()几乎不添加熵,因为时间在相应的调用之间只会改变很小的数量。
只要您使用 more_entropy
选项,就不应该在单个服务器中发生冲突。如果使用群集,请确保在服务器之间包含不同的前缀。
uniqid()是你在找什么在大多数实际情况。
你可以把它甚至更多"uniq"通过加入一个大的随机数目之后。
不隶属于 StackOverflow