首頁  >  文章  >  php教程  >  PHP 隨機使用者名稱帳號的生成

PHP 隨機使用者名稱帳號的生成

大家讲道理
大家讲道理原創
2016-11-09 14:44:281678瀏覽

隨機產生困難是在於如何避免碰撞,有人說用md5,GUID這些機制啊,當然可以,但是做為帳號,看著有亂,而且生成位數也過長。

本方法只需要解決1秒內的並發碰撞就可以,因為固定頭部採用的是unixtime時間,精確到秒,超過1秒,這個頭部的時間肯定變化了。同時本方法也可以使用者隨機訂單編號的產生。

測試條件是用循環創建1萬個隨機帳號(毫秒級),0碰撞,10萬個大約有0-3個碰撞。應該沒有一家網路公司會在瞬間同時創建這麼多帳號,所以足夠應付數十億PV這麼大的規模了。

// 自動產生隨機用戶名

// 測試,循環創建1萬個隨機帳號,0碰撞,10萬大約0-3個碰撞,足夠應付未來數十億級PV

private function genUserNumber()
{
    $chars = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ";
    $username = "";
    for ( $i = 0; $i < 6; $i++ )
    {
        $username .= $chars[mt_rand(0, strlen($chars))];
    }
    return strtoupper(base_convert(time() - 1420070400, 10, 36)).$username;
}


陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
上一篇:PHP 實作HASH表下一篇:PHP 實作HASH表