[英]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.