深入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函数解决SQL injection
Dec 09 PHP
PHP语法速查表
Jan 02 PHP
基于PHP Web开发MVC框架的Smarty使用说明
Apr 19 PHP
php源代码安装常见错误与解决办法分享
May 28 PHP
如何使用php绘制在图片上的正余弦曲线
Jun 08 PHP
PHP网站开发中常用的8个小技巧
Feb 13 PHP
php实现比较全的数据库操作类
Jun 18 PHP
Yii2框架引用bootstrap中日期插件yii2-date-picker的方法
Jan 09 PHP
php使用glob函数遍历文件和目录详解
Sep 23 PHP
提高Laravel应用性能方法详解
Jun 24 PHP
在laravel中实现ORM模型使用第二个数据库设置
Oct 24 PHP
如何运行/调试你的PHP代码
Oct 23 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
用header 发送cookie的php代码
2007/03/16 PHP
php 删除一个数组中的某个值.兼容多维数组!
2012/02/18 PHP
4种PHP异步执行的常用方式
2015/12/24 PHP
Symfony2获取web目录绝对路径、相对路径、网址的方法
2016/11/14 PHP
详解PHP中的外观模式facade pattern
2018/02/05 PHP
PHP使用file_get_contents发送http请求功能简单示例
2018/04/29 PHP
在PHP中实现使用Guzzle执行POST和GET请求
2019/10/15 PHP
php模拟实现斗地主发牌
2020/04/22 PHP
jQuery中的bind绑定事件与文本框改变事件的临时解决方法
2010/08/13 Javascript
基于jquery循环map功能的代码
2011/02/26 Javascript
js动态生成指定行数的表格
2013/07/11 Javascript
jquery增加时编辑jqGrid(实例代码)
2013/11/08 Javascript
jsPDF导出pdf示例
2014/05/02 Javascript
javascript字符串循环匹配实例分析
2015/07/17 Javascript
js表单验证实例讲解
2016/03/31 Javascript
JavaScript箭头函数_动力节点Java学院整理
2017/06/28 Javascript
详解angularjs实现echart图表效果最简洁教程
2017/11/29 Javascript
Koa2微信公众号开发之消息管理
2018/05/16 Javascript
js实现简单进度条效果
2020/03/25 Javascript
Vue基本指令实例图文讲解
2021/02/25 Vue.js
[01:00]DOTA2 store: Collection of Artisan's Wonders
2015/08/12 DOTA
浅析Python装饰器以及装饰器模式
2018/05/28 Python
Pycharm 2019 破解激活方法图文详解
2019/10/11 Python
基于python+selenium的二次封装的实现
2020/01/06 Python
Python调用.net动态库实现过程解析
2020/06/05 Python
Python执行时间的几种计算方法
2020/07/31 Python
工程师必须了解的LRU缓存淘汰算法以及python实现过程
2020/10/15 Python
Django模板报TemplateDoesNotExist异常(亲测可行)
2020/12/18 Python
AJAX都有哪些有点和缺点
2012/11/03 面试题
缓刑人员的思想汇报
2014/01/11 职场文书
上课迟到检讨书100字
2014/01/11 职场文书
代领报检证委托书范本
2014/10/11 职场文书
2014年精神文明建设工作总结
2014/11/19 职场文书
2015年安全生产责任书
2015/01/30 职场文书
教师节晚会主持词
2015/06/30 职场文书
使用pd.merge表连接出现多余行的问题解决
2022/06/16 Python