日日操夜夜添-日日操影院-日日草夜夜操-日日干干-精品一区二区三区波多野结衣-精品一区二区三区高清免费不卡

公告:魔扣目錄網為廣大站長提供免費收錄網站服務,提交前請做好本站友鏈:【 網站目錄:http://www.ylptlb.cn 】, 免友鏈快審服務(50元/站),

點擊這里在線咨詢客服
新站提交
  • 網站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會員:747

PHP生成唯一ID的四種方法介紹


工作中使用到唯一ID的場景非常多,如臨時緩存文件、臨時變量、臨時安全碼等。

uniqid()函數基于以微妙計的當前時間,生成一個唯一的ID。由于生成唯一ID與微妙時間關聯,因此生成ID的唯一性非常可靠。

生成的唯一ID默認返回的字符串有13個字符長,如果再結合MD5()函數,生成的唯一ID可靠性將更高,這種生成的ID比隨機性的ID最大優點在于可實現排序,特別是一些需要存儲在數據庫中的值。當然在這里也可以加入隨機數。

下面主要介紹4種生成唯一ID的方法:

1、MD5

md5(time().mt_rand(1,1000000))

注意:這種方法有一定的概率會出現重復

2、php內置函數uniqid()

uniqid()函數基于以微妙的當前時間,生成一個唯一的ID。

echo uniqid();
echo uniqid();
echo uniqid();
OUTPUT:
   5a4b62dd4aeea
   5a4b62dd4aff7
   5a4b62dd4b069

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

3、結合md5()函數生成一個唯一的ID

     echo md5(uniqid());
OUTPUT:
    0ac3d6e99b7f5290c93d730eaf9d7d94

4、手動去處理,官方給予的案例

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;
}

返回結果類似:E2DFFFB3-571E-6CFC-4B5C-9FEDAAF2EFD7


分享到:
標簽:PHP生成唯一ID 方法介紹
用戶無頭像

網友整理

注冊時間:

網站:5 個   小程序:0 個  文章:12 篇

  • 51998

    網站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會員

趕快注冊賬號,推廣您的網站吧!
最新入駐小程序

數獨大挑戰2018-06-03

數獨一種數學游戲,玩家需要根據9

答題星2018-06-03

您可以通過答題星輕松地創建試卷

全階人生考試2018-06-03

各種考試題,題庫,初中,高中,大學四六

運動步數有氧達人2018-06-03

記錄運動步數,積累氧氣值。還可偷

每日養生app2018-06-03

每日養生,天天健康

體育訓練成績評定2018-06-03

通用課目體育訓練成績評定