深入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 相关文章推荐
xml+php动态载入与分页
Oct 09 PHP
PHP实现MVC开发得最简单的方法――模型
Apr 10 PHP
php用数组返回无限分类的列表数据的代码
Aug 08 PHP
php实现将Session写入数据库
Jul 26 PHP
PHP实现动态web服务器方法
Jul 29 PHP
Yii控制器中操作视图js的方法
Jul 04 PHP
php微信公众号开发(3)php实现简单微信文本通讯
Dec 15 PHP
微信公众号开发之通过接口删除菜单
Feb 20 PHP
老生常谈PHP数组函数array_merge(必看篇)
May 25 PHP
php读取本地json文件的实例
Mar 07 PHP
PHP+redis实现的悲观锁机制示例
Jun 12 PHP
php使用pecl方式安装扩展操作示例
Aug 12 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
PHP脚本的10个技巧(7)
2006/10/09 PHP
上传多个文件的PHP脚本
2006/11/26 PHP
php中json_encode中文编码问题分析
2011/09/13 PHP
PHP实现定时执行任务的方法
2014/10/05 PHP
PHP实现仿Google分页效果的分页函数
2015/07/29 PHP
php提取身份证号码中的生日日期以及验证是否为成年人的函数
2015/09/29 PHP
PHP模拟post提交数据方法汇总
2016/02/16 PHP
Laravel Reponse响应客户端示例详解
2020/09/03 PHP
Wordpress ThickBox 点击图片显示下一张图的修改方法
2010/12/11 Javascript
仅img元素创建后不添加到文档中会执行onload事件的解决方法
2011/07/31 Javascript
JQuery入门—JQuery程序的代码风格详细介绍
2013/01/03 Javascript
javascript单引号和双引号的区别和处理
2014/05/14 Javascript
火狐下input焦点无法重复获取问题的解决方法
2014/06/16 Javascript
浅谈Javascript中匀速运动的停止条件
2014/12/19 Javascript
原生js制作简单的数字键盘
2015/04/24 Javascript
使用jQuery.form.js/springmvc框架实现文件上传功能
2016/05/12 Javascript
jQuery鼠标事件总结
2016/10/13 Javascript
nodejs的压缩文件模块archiver用法示例
2017/01/18 NodeJs
js获取地址栏中传递的参数(两种方法)
2017/02/08 Javascript
javascript html5轻松实现拖动功能
2017/03/01 Javascript
[01:23]一分钟告诉你 DOTA2为什么叫信仰2
2014/06/20 DOTA
[37:37]DAC2018 4.4 淘汰赛 Optic vs Mineski 第二场
2018/04/05 DOTA
Python实现嵌套列表及字典并按某一元素去重复功能示例
2017/11/30 Python
对Python生成汉字字库文字,以及转换为文字图片的实例详解
2019/01/29 Python
Pandas之groupby( )用法笔记小结
2019/07/23 Python
django 中的聚合函数,分组函数,F 查询,Q查询
2019/07/25 Python
详解Ubuntu环境下部署Django+uwsgi+nginx总结
2020/04/02 Python
HTML5资源预加载(Link prefetch)详细介绍(给你的网页加速)
2014/05/07 HTML / CSS
写一个方法1000的阶乘
2012/11/21 面试题
视图的作用
2014/12/19 面试题
技校生自我鉴定
2013/12/08 职场文书
领导证婚人证婚词
2014/01/13 职场文书
学习十八大报告感言
2014/02/28 职场文书
2015年学校精神文明工作总结
2015/05/27 职场文书
导游词之西递宏村
2019/12/10 职场文书
nginx搭建NFS网络文件系统
2022/04/14 Servers