PHP のランダムなユーザー名アカウントの生成

大家讲道理
リリース: 2016-11-09 14:44:28
オリジナル
1675 人が閲覧しました

ランダム生成の難しさは、衝突を回避する方法です。もちろん、それは可能ですが、アカウントとしては乱雑に見えますし、生成される桁数が長すぎます。

固定ヘッドは秒単位で正確な unixtime 時間を使用するため、このメソッドは 1 秒以内に同時衝突を解決するだけで済みます。1 秒を超える場合は、このヘッドの時間が変更されているはずです。同時に、この方法ではユーザーに対してランダムな注文番号を生成することもできます。

テスト条件は、ループを使用して、衝突が 0 件のランダムなアカウント (ミリ秒レベル) 10,000 個と、衝突が約 0 ~ 3 件の 100,000 個のアカウントを作成することです。これだけ多くのアカウントを瞬時に同時に作成するネット企業は存在しないはずなので、数十億PVの規模には十分対応できます。

// ランダムなユーザー名を自動的に生成します

// テストして、ループ内で 10,000 個のランダムなアカウントを作成します。衝突は 0 回、100,000 個の衝突は 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 までご連絡ください。
最新の問題
人気のおすすめ
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート