深入PHP获取随机数字和字母的方法详解


Posted in PHP onJune 06, 2013

第一种方法

<?php
$FileID=date("Ymd-His") . '-' . rand(100,999);

//$FileID为   20100903-132121-908   这样的的随机数
?>

第二种方法
<?php
function randomkeys($length) {
    $returnStr='';
    $pattern = '1234567890abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLOMNOPQRSTUVWXYZ';
    for($i = 0; $i < $length; $i ++) {
        $returnStr .= $pattern {mt_rand ( 0, 61 )}; //生成php随机数
    }
    return $returnStr;
}
echo randomkeys(4);
?>

第三种方法
<?php
//seed用户自定义函数以微秒作为种子
function seed()
{
list($msec, $sec) = explode(' ', microtime());
return (float) $sec;
}
//播下随机数发生器种子,用srand函数调用seed函数的返回结果
srand(seed());
//输出产生的随机数,随机数的范围为10-100
echo rand(10,100);
?>

上面这个和下面这个不是没什么不同吗?都是随机输出10-100之间的数,新人学习,可能问的太简单了呵呵
<?php
echo rand(10,100);
?>
mt_rand(10,100);

srand是种子,如果不设的话默认是1
rand一般是利用种子做参数的一种固定的运算
你试一下就知道了,不设种子或者设一个固定的种子,运行rand
然后再关了浏览器再开,再运行rand
你会发现结果一直是一样的
先说rand()函数吧,rand([int min], [int max])   
本函数从min和max之间取一个随机数。若没有指定随机数的最大及最小范围,本函数会自动的从0到RAND_MAX中取一个随机数。
但是如果只用rand()这个函数,随机数的乱度很大,每次在取随机数之前最好使用srand()函数,以配置新的随机数种子。
解释一下下面这个用法(一般都是这样用这两个函数的):
srand((double)microtime()*1000000);
$rand_number= rand();
microtime()返回了两个值:当前毫秒和时间戳,我们要提取随机数,只能从毫秒中取一个随机数,(double)microtime()就只返回当前的毫秒值。
microtime()是以秒为单位的毫秒数,因而值都是小数,乘以1000000将其换算为整数

它们的工作流程如下:
(1):首先,给srand()提供一个”种子”;,它是一个unsigned_int类型的值。
(2):_然后,调用rand(),它会根据提供给srand()的值返回一个随机数(范围在_0~32767之间)
(3):根据需要多次调用rand(),不断得到新的随机数。
(4):无论什么时候可以给srand()提供一个新的“种子”,从而进一步“随机化”rand()的
输出结果。

PHP 相关文章推荐
利用php+mysql来做一个功能强大的在线计算器
Oct 12 PHP
PHP新手NOTICE错误常见解决方法
Dec 07 PHP
有关PHP性能优化的介绍
Jun 20 PHP
php模拟ping命令(php exec函数的使用方法)
Oct 25 PHP
zend framework文件上传功能实例代码
Dec 25 PHP
php获取系统变量方法小结
May 29 PHP
php parse_str() 函数的定义和用法
May 23 PHP
PHP7安装Redis扩展教程【Linux与Windows平台】
Sep 30 PHP
php 获取文件行数的方法总结
Oct 11 PHP
PHP单例模式简单用法示例
Jun 23 PHP
redis+php实现微博(三)微博列表功能详解
Sep 23 PHP
详解php中流行的rpc框架
May 29 PHP
解析如何屏蔽php中的phpinfo()函数
Jun 06 #PHP
深入PHP中慎用双等于(==)的详解
Jun 06 #PHP
解析PHP中如何将数组变量写入文件
Jun 06 #PHP
浅谈PHP强制类型转换,慎用!
Jun 06 #PHP
探讨file_get_contents与curl效率及稳定性的分析
Jun 06 #PHP
$_GET['goods_id']+0 的使用详解
Jun 06 #PHP
PHP编码规范的深入探讨
Jun 06 #PHP
You might like
全国FM电台频率大全 - 5 内蒙古自治区
2020/03/11 无线电
解析thinkphp基本配置 convention.php
2013/06/18 PHP
PHP 函数call_user_func和call_user_func_array用法详解
2014/03/02 PHP
PHP7多线程搭建教程
2017/04/21 PHP
javascript 贪吃蛇实现代码
2008/11/22 Javascript
jquery 简单导航实现代码
2009/09/11 Javascript
Js放到HTML文件中的哪个位置有什么区别
2013/08/21 Javascript
js call方法详细介绍(js 的继承)
2013/11/18 Javascript
Spring mvc 接收json对象
2015/12/10 Javascript
javascript中闭包(Closure)详解
2016/01/06 Javascript
js事件处理程序跨浏览器解决方案
2016/03/27 Javascript
原生js实现手风琴功能(支持横纵向调用)
2017/01/13 Javascript
Bootstrap modal 多弹窗之叠加关闭阴影遮罩问题的解决方法
2017/02/27 Javascript
bootstrap table表格使用方法详解
2017/04/26 Javascript
详解用webpack把我们的业务模块分开打包的方法
2017/07/20 Javascript
利用adb shell和node.js实现抖音自动抢红包功能(推荐)
2018/02/22 Javascript
通过扫小程序码实现网站登陆功能
2019/08/22 Javascript
深入理解Python中的元类(metaclass)
2015/02/14 Python
python中随机函数random用法实例
2015/04/30 Python
浅析使用Python操作文件
2017/07/31 Python
Python实现Kmeans聚类算法
2020/06/10 Python
Python爬虫PyQuery库基本用法入门教程
2018/08/04 Python
pycharm显示远程图片的实现
2019/11/04 Python
pytorch实现focal loss的两种方式小结
2020/01/02 Python
Python实现汇率转换操作
2020/05/03 Python
pycharm 实现本地写代码,服务器运行的操作
2020/06/08 Python
PyTorch安装与基本使用详解
2020/08/31 Python
css3进行截取替代js的substring
2013/09/02 HTML / CSS
享誉全球的多元化时尚精品购物平台:Farfetch发发奇(支持中文)
2017/08/08 全球购物
简历中个人自我评价范文
2013/12/26 职场文书
村抢险救灾方案
2014/05/09 职场文书
企业文化理念标语
2014/06/10 职场文书
交通事故一次性赔偿协议书范本
2014/11/02 职场文书
千手观音观后感
2015/06/03 职场文书
2015年国庆节寄语
2015/08/17 职场文书
MySQL数据库完全卸载的方法
2022/03/03 MySQL