1. 访得首页
  2. PHP

PHP随机生成6位随机数

在上传文件并对文件进行重命名的时候经常会用到随机数来确保文件名不会重复的情况,大多数时候我们都会使用到随机数,随机数的函数在php当中以rand()和mt_rand()来生成,但是rand()的执行效率比mt_rand()效率低,所以使用mt_rand()来生成,如何生成指定长度的随机数呢,下面我们来看看。

在上传文件并对文件进行重命名的时候经常会用到随机数来确保文件名不会重复的情况,大多数时候我们都会使用到随机数,随机数的函数在php当中以rand()和mt_rand()来生成,但是rand()的执行效率比mt_rand()效率低,所以使用mt_rand()来生成,如何生成指定长度的随机数呢,下面我们来看看。

PHP生成6位随机数

mt_rand()的用法

mt_rand() 使用 Mersenne Twister 算法返回随机整数。

mt_rand(min,max)

如果没有提供可选参数 min 和 max,mt_rand() 返回 0 到 RAND_MAX 之间的伪随机数。例如想要 5 到 15(包括 5 和 15)之间的随机数,用 mt_rand(5, 15)。

很多老的 libc 的随机数发生器具有一些不确定和未知的特性而且很慢。PHP 的 rand() 函数默认使用 libc 随机数发生器。mt_rand() 函数是非正式用来替换它的。该函数用了 Mersenne Twister 中已知的特性作为随机数发生器,它可以产生随机数值的平均速度比 libc 提供的 rand() 快四倍。

使用mt_rand()获取指定长度随机数

//方法一
function get_random($length = 6) {
    $min = pow(10 , ($length - 1));
    $max = pow(10, $length) - 1;
    return mt_rand($min, $max);
}
//方法二
//6位长度随机数,设置$len=3即可,假如$len=n,则长度为2n
function get_random($len=3){
    //range 是将10到99列成一个数组 
    $numbers = range (10,99);
    //shuffle 将数组顺序随即打乱
    shuffle ($numbers);
    //取值起始位置随机
    $start = mt_rand(1,10);
    //取从指定定位置开始的若干数
    $result = array_slice($numbers,$start,$len);
    $random = "";
    for ($i=0;$i<$len;$i++){
        $random = $random.$result[$i];
    }
    return $random;
 }

以上函数就可以生成6位长度的随机数,执行效率也是比较高,对于文件名不像重复的,最好还加上一个时间戳,可以像下面的写法生成一个文件名

$str = data('Ymd').'_'.time().self::get_random();

上面用到了pow函数,对pow函数说明一下:

pow函数的用法:pow(x,y);

pow() 函数返回 x 的 y 次方。

本文来自投稿,不代表访得立场,如若转载,请注明出处:http://www.found5.com//view/207.html

发表评论

游客 游客

评论列表(0条)

联系我们

18588220566

在线咨询:点击这里给我发消息

邮件:willjz@126.com

工作时间:周一至周五,9:30-18:30,节假日休息

QR code