为每次点击生成一个唯一的ID

Puz*_*Boy 2 php uuid unique-id

假设许多用户一次上传他们的照片.那么我怎么能为每张pic生成一个唯一的id,它永远不会与其他生成的id匹配.

$uniqId = time().'_'.rand();
Run Code Online (Sandbox Code Playgroud)

或者应该使用.

uniqid();
Run Code Online (Sandbox Code Playgroud)

Fun*_*ner 8

使用uniqid()PHP函数可能是您最好的方法,因为没有DB用于发送的文件.

根据PHP手册:uniqid - 生成唯一ID.

"例如,如果您在多个主机上同时生成标识符,可能会在同一微秒内生成标识符,那么这可能很有用."

引自PHP手册.


Atr*_*eur 7

该函数uniqid()每纳秒产生一个不同的id,所以它在大多数时候都是唯一的.

如果您希望在共享环境(多个服务器)中同时上载大量用户,则很可能在所有服务器上以相同的纳秒处理多个请求.

该函数接受两个参数来帮助增加结果的唯一性:

  1. 可以将前缀(第一个参数)设置为服务器名称,以避免跨服务器名称冲突.
  2. "更多熵"(第二个参数)增加了结果唯一的可能性.

例如:

echo uniqid($my_hostname, true);
Run Code Online (Sandbox Code Playgroud)

除了服务器名称,您还可以添加其他熵源,例如用户ID(如果适用).

如果您使用数据库来跟踪图像,另一种方法是使用(auto_increment)主键,该主键对于每一行都是唯一的(因此,数据库会为您处理唯一性)