2012-07-09 44 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;