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

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

$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

php获取随机数,PHP随机生成6位随机数相关推荐

  1. java随机生成6位随机数 5位随机数 4位随机数

    随机数,应用会相当广,验证数,订单号,流水号拼接. 下面是java随机数生成语句: 生成6位随机数(不会是5位或者7位,仅只有6位): System.out.println((int)((Math.r ...

  2. 自定义UDF函数:随机生成N位随机数,包含字母,数字

    按需求随机生成N位长度的随机数,随机数中由字母和数字随机组成. import java.util.Random; import org.apache.hadoop.hive.ql.exec.UDF; ...

  3. 随机生成6位随机数(字母+数字)

    package com.test;public class test {public static void main(String[] args) {String randomcode = &quo ...

  4. 随机生成6位字母+数字混合密码

    随机生成6位字母+数字混合密码 //定义密码位数private final static int PWD_LENGTH = 6; public static String getPwdRandom() ...

  5. 随机生成11位激活码

    小Z最近在做商城模块,其中有Coupon代金券支付的功能,这里面涉及到激活码生成的问题,现在约定的是随机产生数字的11位激活码,因为用户在手机上输入数字英文混合的激活码是非常不方便的一件事情(有种方法 ...

  6. 风尚云网前端-js随机生成自定义位随机字符

     风尚云网前端-js随机生成自定义位随机字符 废话不多说: 上代码 // 随机生成随机数randomPassword(size) {var seed = new Array("A" ...

  7. python随机生成四位验证码的代码_Python random随机生成6位验证码示例代码

    随机生成6位验证码代码 # -*- coding: utf-8 -*- import random def generate_verification_code(): ''' randomly gen ...

  8. js随机生成4位验证码

    方法一: /*随机生成4位验证码*//*step1:将所有字母,数字装入一个数组备用*/var codes=[];//数字:48-57;unicode编码for(var i=48;i<57;co ...

  9. //随机生成1位大写字母\小写字母\数字

    package HomeWork; //随机生成1位大写字母\小写字母\数字 public class Test_2 {public static void main(String[] args) { ...

最新文章

  1. linux ftp随机端口,linuxFTP生产环境配置
  2. Handler消息机制(二):一个线程有几个Handler
  3. 安卓 内存泄漏检测工具 LeakCanary 使用
  4. Leetcode 292. Nim 游戏 解题思路及C++实现
  5. IT职业就业-学长有话说(二)
  6. 《微服务》九大特性重读笔记
  7. 《OpenACC并行程序设计:性能优化实践指南》一 第2章 性能导向开发
  8. 关于只针对ie7浏览器的css问题
  9. C程序设计(第四版)谭浩强著-学习笔记
  10. NB-IoT未来发展,主要是靠什么驱动的?
  11. iphone11主卡在上还是下
  12. 专利欠费怎么办?教你在网上缴纳专利年费,全网最详细步骤
  13. word脚注的编辑设置
  14. 用Gitosis搭建Git服务器(经典资料)
  15. Git简明入土教程2.4万字-转自廖雪峰Git
  16. c语言double型小数点后几位_double类型的数据在输出的时候,C语言编译器对小数部分可以精确到小数点后面的第几位?...
  17. linux下 C语言perror函数的作用
  18. cad指示箭头快捷键命令_Auto CAD2014画箭头快捷键是什么啊??
  19. 查询亿级数据毫秒级返回!Elasticsearch 是如何做到的?
  20. [存储]NVMe-4-数据结构

热门文章

  1. 百度超级链AI系列创世藏品发售!
  2. 线段树 4n 开四倍空间的原因
  3. get_user_pages和get_user_pages_fast的区别
  4. MTK之后台发送中英文短信篇
  5. CTF-暴力破解【超详细】
  6. 英特尔LOGO首次为AI变粉 助力《时尚健康》粉红丝带活动
  7. 无需精子卵子子宫体外培育胚胎,Cell论文作者这番话让网友们炸了
  8. Python代码转如何换为exe可执行程序详解
  9. 《你就是孩子最好的玩具》学习笔记 - 第一章
  10. 通信算法之167: (低空无人机)机载视频通信传输系统基带算法设计