首頁 > php教程 > PHP源码 > 主體

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

大家讲道理
發布: 2016-11-09 14:44:28
原創
1637 人瀏覽過

隨機產生困難是在於如何避免碰撞,有人說用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;
}
登入後複製


來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
最新問題
熱門推薦
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!