簡體   English   中英

在PHP中生成唯一ID

[英]Generating a unique ID in PHP

我正在嘗試在php中生成一個唯一的ID,以便將用戶上傳的內容存儲在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”。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM