導航:首頁 > 編程語言 > php生成唯一碼

php生成唯一碼

發布時間:2022-07-22 20:57:46

㈠ thinkphp怎麼生成唯一標識

1、md5(time() . mt_rand(1,1000000));
這種方法有一定的概率會出現重復

2、php內置函數uniqid()

uniqid() 函數基於以微秒計的當前時間,生成一個唯一的 ID.

w3school參考手冊有一句話:"由於基於系統時間,通過該函數生成的 ID 不是最佳的。如需生成絕對唯一的 ID,請使用 md5() 函數"。

3、官方uniqid()參考手冊有用戶提供的方法,結果類似:{E2DFFFB3-571E-6CFC-4B5C-9FEDAAF2EFD7}

public function create_guid($namespace = '') {
static $guid = '';
$uid = uniqid("", true);
$data = $namespace;
$data .= $_SERVER['REQUEST_TIME'];
$data .= $_SERVER['HTTP_USER_AGENT'];
$data .= $_SERVER['LOCAL_ADDR'];
$data .= $_SERVER['LOCAL_PORT'];
$data .= $_SERVER['REMOTE_ADDR'];
$data .= $_SERVER['REMOTE_PORT'];
$hash = strtoupper(hash('ripemd128', $uid . $guid . md5($data)));
$guid = '{' .
substr($hash, 0, 8) .
'-' .
substr($hash, 8, 4) .
'-' .
substr($hash, 12, 4) .
'-' .
substr($hash, 16, 4) .
'-' .
substr($hash, 20, 12) .
'}';
return $guid;
}

㈡ php生成8位唯一字元串

functionget62($src,$length=8){
$md5=md5($src,true);

$pos=0;
$res="";
while(strlen($res)<$length&&($bin=substr($md5,$pos,4))!=""){
$uint=sprintf("%u",unpack("Nint",$bin)['int']);
$res.=decto62($uint);
$pos+=4;
}
returnsubstr($res,0,$length);
}

functiondecto62($src){
static$table=[];
$table=array_merge(range(0,9),range('A',"Z"),range('a',"z"));

$arr62=[];
$div=$src;
do{
$mod=$div%62;
array_unshift($arr62,$table[$mod]);
$div=intval($div/62);
}while($div!=0);

returnimplode("",$arr62);
}

var_mp(get62("abc"));

㈢ 怎麼讓php生成唯一數字ID的重復度降低

uniqid() 函數基於以微秒計的當前時間,生成一個唯一的 ID
uniqid(prefix,more_entropy)

prefix 可選。為 ID 規定前綴。如果兩個腳本恰好在相同的微秒生成 ID,該參數很有用。
more_entropy 可選。規定位於返回值末尾的更多的熵。
如果 prefix 參數為空,則返回的字元串有 13 個字元串長。如果 more_entropy 參數設置為 true,則是 23 個字元串長。
如果 more_entropy 參數設置為 true,則在返回值的末尾添加額外的熵(使用組合線形同餘數生成程序),這樣可以結果的唯一性更好。

㈣ php 如何獲取唯一身份訪問者,根據每一台電腦來獲得唯一的標識

需要准備的材料分別是:電腦、php編輯器、瀏覽器。

1、首先,打開php編輯器,新建php文件,例如:index.php。

㈤ PHP的uniqid函數產生的id真的是唯一的么

生成唯一ID的應用場景非常普遍,如臨時緩存文件名稱,臨時變數,臨時安全碼等,uniqid()函數基於以微秒計的當前時間,生成一個唯一的 ID。由於生成唯一ID與微秒時間關聯,因此ID的唯一性非常可靠。

生成的唯一ID默認返回的字元串有 13 個字元串長,如果不定義唯一ID的前綴,最多可返回23個字元串長,如果再結合md5()函數,生成的唯一ID可靠性將更高,這種生成的ID比隨機性的ID 最大優點在於可實現排序,特別是一些需要存儲在資料庫中的值。

㈥ 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不能像mysql那樣直接用uuid生成唯一標識碼嗎

myssqli和mysql的函數是差不多的, 只不過, mysqi可以用對象方式


//過程方式:
$Con=mysqli_connect('資料庫伺服器地址','資料庫登陸用戶','資料庫密碼');
mysqli_select_db($Con,'資料庫名稱');

//對象方式
$Con=newmysqli('資料庫伺服器地址','資料庫登陸用戶','資料庫密碼','資料庫名稱');

同樣是過程方式,mysqli有一點和mysql的用法不同的是,:

mysql函數,很多函數都有2個參數,一個是sql語句等, 一個是mysql連接標識, 而這個mysql連接標識參數是可以省略的!

但是mysqli兩個參數必須, 而且順序相反, 比如:

mysql_query('showtables',$Con);
//也可以省略第二個參數,寫成:
mysql_query('showtables');
//但是mysqli不行
mysqli_query($Con,'showtables');

㈧ php 生成唯一id的幾種解決方法

1、md5(time() . mt_rand(1,1000000));
這種方法有一定的概率會出現重復
2、php內置函數uniqid()
uniqid() 函數基於以微秒計的當前時間,生成一個唯一的 ID.
方法返回結果類似:5DDB650F-4389-F4A9-A100-501EF1348872

㈨ PHP如何隨機生成一個唯一的id

可以用生成訂單編號的邏輯,在進行加密。來生成唯一的隨機的ID
$str = date('Ymdhis').IP地址.設備信息.用戶ID.rand(0,1000) ;
///拼接起來,再轉換為2進制,你看一下是不是唯一的。隨機的。

閱讀全文

與php生成唯一碼相關的資料

熱點內容
解壓報紙圖片 瀏覽:948
python微信公眾號開發平台 瀏覽:895
知識付費網站java源碼 瀏覽:255
方舟怎麼做命令管理 瀏覽:849
linux流量異常 瀏覽:673
單片機如何給電腦加密碼 瀏覽:519
如何刪掉多餘的伺服器 瀏覽:220
c編程演算法 瀏覽:833
堵車如何緩解壓力 瀏覽:17
喜鵲快貸app怎麼了 瀏覽:263
海龜編輯器積木編程怎麼安裝 瀏覽:185
程序員理發店生意怎麼樣 瀏覽:603
程序員羅技 瀏覽:180
軟考初級程序員課程2021下載 瀏覽:491
杭州程序員奶奶 瀏覽:880
不聽命令造成錯誤 瀏覽:981
kool系統源碼 瀏覽:610
流氓app在哪裡看 瀏覽:98
域名購買了怎麼指向伺服器 瀏覽:121
安卓手機如何讓照片顏色反轉 瀏覽:859