ランダム生成の難しさは、衝突を回避する方法です。もちろん、それは可能ですが、アカウントとしては乱雑に見えますし、生成される桁数が長すぎます。
固定ヘッドは秒単位で正確な 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; }