zoukankan      html  css  js  c++  java
  • PHP随机函数

    PHP随机函数主要有rand、mt_randarray_rand,还有随机“排列”(打乱顺序)的函数shuffle、str_shuffle,能够产生唯一ID的uniqid。
    
    1、rand产生随机数:
    
    <?php
    $base = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789';
    $count = strlen($base);
    $random = '';
    for ($i=0; $i < 16; $i++) { 
     $random.=$base[rand(0,$count-1)];
    }
    echo $random;
    ?>
    rand()函数是使用libc 的随机数发生器生成随机数的,一般较慢,且有不确定因素,建议使用mt_rand函数替代。
    
    getrandmax()函数可以返回rand函数能够产生的最大的随机数(我的系统为32767),所以在设置rand函数第二个参数时不要超高getrandmax的返回值。
    
    2、mt_rand产生随机数:
    
    <?php
    $base = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789';
    $count = strlen($base);
    $random = '';
    for ($i=0; $i < 16; $i++) { 
     $random.=$base[mt_rand(0,$count-1)];
    }
    echo $random;
    ?>
    很多老的 libc 的随机数发生器具有一些不确定和未知的特性而且很慢。PHP 的 rand() 函数默认使用 libc 随机数发生器。mt_rand() 函数是非正式用来替换它的。该函数用了 » Mersenne Twister 中已知的特性作为随机数发生器,它可以产生随机数值的平均速度比 libc 提供的 rand() 快四倍。强烈建议在开发过程中使用mt_rand函数取代rand。
    
    如果没有提供可选参数 minmaxmt_rand() 返回 0 到 mt_getrandmax() 之间的伪随机数。例如想要 3到 20(包括 3 和 20)之间的随机数,用 mt_rand(3, 20)。
    
    3、array_rand函数
    
    <?php
    $base = array('a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z','A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z','0','1','2','3','4','5','6','7','8','9');
     
    $random = '';
    for ($i=0; $i < 16; $i++) { 
     $random.=$base[array_rand($base)];
    }
    echo $random;
    ?> 
    array_rand返回数组中随机的键值,有点类似mt_rand()函数,其余的没什么特殊的地方,灵活运用而已。
    
    4、shuffle函数
    
    <?php
    $base = array('a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z','A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z','0','1','2','3','4','5','6','7','8','9');
    if(shuffle($base)){
     print_r($base);
    }
    ?> 
    shuffle函数是打乱一个数组的序列,有点随机的意思,这里就放在随机函数里了。返回值为bool值,相当于直接引用了原变量。
    
    5、str_shuffle函数
    
    <?php
    $base = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789';
    echo str_shuffle($base);
    ?>
    这里str_shuffle的功能和shuffle的功能是类似的,唯一不同的是返回值,str_shuffle的原字符串是不变的。
    
    6、uniqid函数
    
    <?php
    echo uniqid();
    //54f806528172f
    ?>
    uniqid能够产生唯一的字符串,这个应用的范围可以相当广泛
  • 相关阅读:
    字符串替换
    Problem E: Automatic Editing
    正则表达式学习(1)
    python中的enumerate使用
    使用bottle进行web开发(9):文件上传;json传递
    使用bottle进行web开发(8):get的参数传递,form里的额数据传递等
    dict的setdefault(学习bottle源代码)
    使用bottle进行web开发(6):Response 对象
    使用bottle进行web开发(5):Generating Content
    使用bottle进行web开发(4):HTTPError
  • 原文地址:https://www.cnblogs.com/sgm4231/p/9822102.html
Copyright © 2011-2022 走看看