php生成唯一的id
公司需求.生成唯一id用作兌換卡的id,所以就想用雪花演算法,寫了一個乞丐版的雪花演算法,做個記載
❷ 在PHP中return一般在什麼情況下用。。
return就是返回值。
比如用戶有一個函數,是進行加法運算,但是用戶希望碼辯御得到的是結果,不是輸出結果,就要用返回值:
function add($a,$b){
return $a+$b;
}
$c = add(5,3);//用戶這個得到的$c值就可以用在程序的其他地方
(2)php生成唯一的id擴展閱讀:
PHP函數
usleep() 函數延遲代碼執行若干微秒。
unpack() 函數從二進制字元串對數據進行解包。
uniqid() 函數基於以微灶瞎秒計的當前時間,生成一個唯一的 ID。
time_sleep_until() 函數延遲代碼執行直遲岩到指定的時間。
time_nanosleep() 函數延遲代碼執行若干秒和納秒。
sleep() 函數延遲代碼執行若干秒。
show_source() 函數對文件進行語法高亮顯示。
❸ php:如何生成隨機的唯一字母數字字元串
1. 自己寫代碼產生隨機的數字和字母組合,每產生1個去資料庫查詢該隨機碼是否已存在,如果已存在,則重新產生,直到不重復為止。
缺點:產生速度慢,還要查詢資料庫,當數據量大的時候,可能重復的機率會比較高,要查詢多次資料庫.
2. guid,該方法應該是用的比較多的。
優點:使用簡單方便,不用自己編寫額外的代碼
缺點:佔用資料庫空間相對較大,特別是根據guid查詢速度比較慢(畢竟是字元串)。
3. 主鍵+隨機碼的方式,我們產生的隨機碼保存到資料庫肯定會有個主鍵,用該主鍵+隨機字元來組合。產生步驟:
1) 先從id生成器中獲取id,比如是155.
2)填充成固定位數(比如8位)的字元串(不夠位數的左邊填0,超過位數直接使用該數字),得到:00000155
3)在每個數字後面隨機插入1個字母或其它非數字元號,得到:0A0F0R0Y0H1K5L5M
這樣就可以得到1個隨機的唯一的邀請碼了。
優點:使用也比較簡單,不用查詢資料庫。最大的優點是查詢的時候,可以根據邀請碼直接得到主鍵id,然後根據id去資料庫查詢(速度很快),再比較查詢出來的邀請碼和用戶提交的邀請碼是否一致。
缺點:需要使用id產生器,如果主鍵是資料庫自增長的就不太好用(需要先插入資料庫獲取id,再更新邀請碼)。
4. 有時候產品經理說,我要求邀請碼都是數字的。把方法3變通下就可以實現唯一的純數字隨機碼了。
1) 獲取id: 155
2) 轉換成8進制:233
3) 轉為字元串,並在後面加'9'字元:2339
4)在後面隨機產生若干個隨機數字字元:2003967524987
轉為8進制後就不會出現9這個字元,然後在後面加個'9',這樣就能確定唯一性。最後在後面產生一些隨機數字就可以。
❹ php 隨機生成不重復用戶ID
php可以使用uniqid函數生成唯一的ID
uniqid — 生成一個唯一ID
stringuniqid([string$prefix=""[,bool$more_entropy=false]])
獲取一個帶前綴、基於當前時間微秒數的唯一ID。
參數說明:
prefix:有用的參數。例如:如果在多台主機上可能在同一微秒生成唯一ID。
prefix為空,則返回的字元串長度為13。more_entropy 為 TRUE,則返回的字元串長度為23。
more_entropy:如果設置為 TRUE,uniqid() 會在返回的字元串結尾增加額外的煽(使用combined linear congruential generator)。使得唯一ID更具唯一性。
返回值:
返回字元串形式的唯一ID。
❺ PHP生成10位左右,數字、字母混合的字元串且唯一
$yCode = array('A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J');
$orderSn =
$yCode[intval(date('Y')) - 2017] . strtoupper(dechex(date('m'))) . date(
'd') . substr(time(), -5) . substr(microtime(), 2, 5) . sprintf(
'%02d', rand(0, 99));
❻ PHP的uniqid函數產生的id真的是唯一的么
生成唯一ID的應用場景非常普遍,如臨時緩存文件名稱,臨時變數,臨時安全碼等,uniqid()函數基於以微秒計的當前時間,生成一個唯一的 ID。由於生成唯一ID與微秒時間關聯,因此ID的唯一性非常可靠。
生成的唯一ID默認返回的字元串有 13 個字元串長,如果不定義唯一ID的前綴,最多可返回23個字元串長,如果再結合md5()函數,生成的唯一ID可靠性將更高,這種生成的ID比隨機性的ID 最大優點在於可實現排序,特別是一些需要存儲在資料庫中的值。
❼ PHP如何隨機生成一個唯一的id
可以用生成訂單編號的邏輯,在進行加密。來生成唯一的隨機的ID
$str = date('Ymdhis').IP地址.設備信息.用戶ID.rand(0,1000) ;
///拼接起來,再轉換為2進制,你看一下是不是唯一的。隨機的。
❽ 如何用php生成一個16位數的id 並在指定的文件創建id文件夾
1234<?php$id = substr(md5(uniqid()), 0,16);mkdir('./abc/'.$id);?>
uniqid()
生成一個唯一的id值,在MD5加密成32位數完後,截取16為的字元。
在當前目錄下abc目錄下創建文件夾。
望採納
Thx
❾ php 生成唯一id的幾種解決方法
資料庫設置一個欄位為id,為主鍵就可以了,設置自增,每次增加一條數據時,它就是唯一的id
❿ idhttpserver怎麼保證用戶每次請求唯一
idhttpserver保證用戶每次請求唯一是使用uniqid()。根據查詢相關公開信息,可利用php內置函數uniqid(),差擾idhttpserver可保鉛慶源證用戶每次請求生成唯槐態一id。