php生成随机数/生成随机字符串的方法小结【5种方法】

吾爱主题 阅读:127 2021-10-15 14:53:00 评论:0

本文实例讲述了php生成随机数/生成随机字符串的方法。分享给大家供大家参考,具体如下:

有时候我们的项目需要生成随机数,但是又不想那么麻烦,那么我们可以使用下面这5种方法生成。

第一种:mt_rand()

?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 <?php function GetRandStr( $length ){   //字符组合   $str = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789' ;   $len = strlen ( $str )-1;   $randstr = '' ;   for ( $i =0; $i < $length ; $i ++) {    $num =mt_rand(0, $len );    $randstr .= $str [ $num ];   }   return $randstr ; }   //传入长度 $number = GetRandStr(6); echo $number ; ?>

第二种:array_rand()数组

?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 <?php function make_password( $length ) {   // 密码字符集,可任意添加你需要的字符   $str = 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' );   // 在 $str 中随机取 $length 个数组元素键名   $keys = array_rand ( $str , $length );   $password = '' ;   for ( $i = 0; $i < $length ; $i ++)   {    // 将 $length 个数组元素连接成字符串    $password .= $str [ $keys [ $i ]];   }   return $password ; } echo make_password(6); ?>

第三种:把字符串打乱,然后返回其中的一小截

?
1 2 3 4 5 6 7 8 9 <?php function getrandstr( $length ){   $str = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz1234567890' ;   $randStr = str_shuffle ( $str ); //打乱字符串   $rands = substr ( $randStr ,0, $length ); //substr(string,start,length);返回字符串的一部分   return $rands ; } echo getrandstr(6); ?>

第四种:返回任意随机数

?
1 2 3 4 <?php //返回1000-9999其中的一个随机数 echo rand(1000,9999); ?>

第五种:对时间戳进行MD5加密,截取其中一部分

?
1 2 3 4 5 6 7 8 <?php function token( $length ){   $str = md5(time());   $token = substr ( $str ,5, $length );   return $token ; } echo token(6); ?>

5种方法,任你选择,当然还有很多方法,例如多个字符串进行拼接,最后做md5加密或SHA1加密,然后返回字符串,这种比较普遍用于token验证或签名验证。

希望本文所述对大家PHP程序设计有所帮助。

原文链接:https://segmentfault.com/a/1190000022718001

可以去百度分享获取分享代码输入这里。
声明

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

【腾讯云】云服务器产品特惠热卖中
搜索
标签列表
    关注我们

    了解等多精彩内容