1

ID ジェネレーター コードをエレガントにする方法: ユーザーが登録すると、ID が取得されます。生成された ID が一意ではない可能性はありますか? また、コードをエレガントにするにはどうすればよいですか? ありがとう!

#hash = random url generated from 128 chars

$cac = substr($hash, 64,-60);

$words = array('GET', 'COOL', 'WOW', 'YES', 'NICE', 'BUCK', 'LUCK', 'FUN', 'CASH', 'TIP', 'PEEK', 'TAG'); 
$rword = rand(0,11);

$syms = array('-', '#', '$', '@');
$rsym = rand(0,3); 

$nums = rand(0,9);

$aff_id_temp = $words[$rword] . $syms[$rsym] . $cac . $nums;
$final_id = strtoupper($aff_id_temp);

---更新--- コードは機能します。ユーザーが登録するときに、単純なアフィリエイト ID を生成するだけです。エレガントとは、つまり、最終的な製品コードをハッキングする方法をより単純にするか、別の方法で (おそらくループで) 基本的に、同じ結果を達成するためのさまざまな方法を学びたいということです。他のコーディングの視点が必要です。

出力は次のようなものです: TIP#6C1D2

4

1 に答える 1

1

ハッシュのため、事実上ゼロです。つまり、ハッシュ関数に完全に依存しています。

ハッシュを除外すると、特定の ID が別の特定の ID と衝突する可能性は1/(12*4*10) = 1/480、およそ 0.2% です。ただし、新しい ID が他の ID と衝突しない可能性は です1-(1-1/480)^c。ここcで、 は既に持っている ID の数です。たった 50 の ID で、既に 10% の確率で衝突が発生します。

関数で一意のハッシュを取得できuniqidます。

于 2012-09-06T17:20:21.977 に答える