(PHP 4, PHP 5, PHP 7, PHP 8)
uniqid — 生成一個(gè)唯一ID
$prefix
= "", bool $more_entropy
= false): string獲取一個(gè)帶前綴、基于當前時(shí)間微秒數的唯一ID。
本函數并不會(huì )生成安全加密的值,不應用于加密用途。若需要安全加密的值,考慮使用 random_int()、random_bytes() 或 openssl_random_pseudo_bytes() 替代。
此函數不保證返回值的唯一性。
由于絕大多數系統使用 NTP 或者類(lèi)似服務(wù)調整系統的時(shí)間,所以系統時(shí)間經(jīng)常發(fā)生變化。
此外,進(jìn)程/線(xiàn)程可能不會(huì )返回唯一的 ID。
用 more_entropy
來(lái)增加唯一性的概率。
prefix
有用的參數。例如:如果在多臺主機上可能在同一微秒生成唯一ID。
prefix
為空,則返回的字符串長(cháng)度為13。more_entropy
為
true
,則返回的字符串長(cháng)度為23。
more_entropy
如果設置為 true
,uniqid() 會(huì )在返回的字符串結尾增加額外的熵(使用combined linear congruential generator)。
使得唯一ID更具唯一性。
返回字符串形式的唯一ID。
此函數努力創(chuàng )建唯一識別符,但它不保證返回值得唯一性。
示例 #1 uniqid() 例子
<?php
/* A uniqid, like: 4b3403665fea6 */
printf("uniqid(): %s\r\n", uniqid());
/* We can also prefix the uniqid, this the same as
* doing:
*
* $uniqid = $prefix . uniqid();
* $uniqid = uniqid($prefix);
*/
printf("uniqid('php_'): %s\r\n", uniqid('php_'));
/* We can also activate the more_entropy parameter, which is
* required on some systems, like Cygwin. This makes uniqid()
* produce a value like: 4b340550242239.64159797
*/
printf("uniqid('', true): %s\r\n", uniqid('', true));
?>
注意:
在Cygwin環(huán)境下,為了使此函數能夠工作,
more_entropy
必須設置為true
。