2012-07-09 18 views
-1

他們我想創建一個隨機數字串,其中有一個固定的字母B在開頭,一組八個以任意隨機字母結尾的整數例如B07224081A,其中A和其他數字是隨機的。這個字符串應該是唯一的。我怎樣才能做到這一點?PHP:生成包含後綴和前綴的隨機字符串作爲大寫字母

+3

這不是一個cakephp特定的問題。只是很好的舊PHP。非常相似:http://stackoverflow.com/questions/853813/how-to-create-a-random-string-using-php – jeremyharris 2012-07-09 15:00:52

+0

確切地說..只是谷歌瞭如何TI生成隨機字母數字字符串和修改腳本你的目的! – 2012-07-09 15:03:05

回答

3

你的意思是這樣嗎?

$letters = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"; 
$numbers = rand(10000000, 99999999); 
$prefix = "B"; 
$sufix = $letters[rand(0, 25)]; 

$string = $prefix . $numbers . $sufix; 
echo $string; // printed "B74099731P" in my case 

的多個字符 - 機會就越大,產生獨特字符串。

我認爲這是更好的方法使用uniqid(),因爲它是基於毫秒。生成的字符串的唯一性是有保證的。

+2

爲了確保唯一性,您需要跟蹤您使用過的字符串,並在重複出現時重新生成字符串。 – chaos 2012-07-09 15:17:41

+0

我嘗試了兩種方法,他們工作得很好。謝謝 – alicemap 2012-07-16 14:15:35

0

這應該適合你。

$randomString = "B"; 
    for ($i = 0; $i < 9; $i++) { 
    if ($i < 8) { 
     $randomString.=rand(0,9); 
    } 
    if ($i == 8) { 
     $randomString.=chr(rand(65,90)); 
    } 
    } 
    echo $randomString;