有没有更好(更短)的方法来生成随机字符串?

时间:2012-09-18 06:56:48

标签: php

0100之间的任意随机数都可以这样生成:

<?php
    $min = 0;
    $max = 100;
    $random =  rand($min,$max);
?>

现在我可以将$random放在我的文件中的任何位置以生成随机数。但问题是当我将它放在多个地方时,所有这些地方都具有相同的值(如果一个随机数为17,则所有地点都为17

我在不止一个地方做这样的事情:

    $random2 =  rand($min,$max);
    $random3 =  rand($min,$max);
    $random4 =  rand($min,$max);
    $random5 =  rand($min,$max);

将这些放置在所有位置。

这样做会占用我脚本中更多的空间。有没有更好的方法来做我想要的?

4 个答案:

答案 0 :(得分:4)

为什么不制作一个功能?:

function myRand(){
    $min = 0;
    $max = 100;
    return mt_rand($min, $max);
}
echo myRand();

这样你只需要调用函数。

答案 1 :(得分:0)

长期在stackoverflow上创建这个

 function getRandom($lengthOfStringToGen)
 {
 $characters = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';
$randString= '';
for ($i = 0; $i < $lengthOfStringToGen; $i++) {
    $randString.= $characters[rand(0, strlen($characters) - 1)];
}
return $randString;
}

答案 2 :(得分:0)

<?php
 function randd(){
 $min = 0;
$max = 100;
return $random =  rand($min,$max).'<br>';
}
echo $random = randd();
echo $random= randd();
echo $random= randd();
echo $random= randd();
?>

答案 3 :(得分:0)

<?php

/*
* str_shuffle to generate a random series of characters based on those provided, uniqid added, then shuffled again.
* substr will trim the output down to between 10 and 12 characters randomly.
*/

//Generate 10 Random Strings
$i = 1;
while($i <= 10){
echo substr(str_shuffle(uniqid(str_shuffle("abcdefghjkmnpqrstwxyzABCDEFGHJKMNPQRSTWXYZ23456789"))), 0, rand(10,12))."<br/>";
$i++;
}

?>