深入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连接mssql数据库的几种方法
Feb 21 PHP
百度工程师讲PHP函数的实现原理及性能分析(三)
May 13 PHP
php实现向javascript传递数组的方法
Jul 27 PHP
php函数连续调用实例分析
Jul 30 PHP
Zend Framework连接Mysql数据库实例分析
Mar 19 PHP
WordPress过滤垃圾评论的几种主要方法小结
Jul 11 PHP
php验证身份证号码正确性的函数
Jul 20 PHP
php获取服务器操作系统相关信息的方法
Oct 08 PHP
谈谈php对接芝麻信用踩的坑
Dec 01 PHP
PHP编程实现阳历转换为阴历的方法实例
Aug 08 PHP
Laravel 数据库加密及数据库表前缀配置方法
Oct 10 PHP
PHP实现限制域名访问的实现代码(本地验证)
Sep 13 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世纪万年历
2006/12/06 PHP
来自phpguru得Php Cache类源码
2010/04/15 PHP
PHP代码保护--Zend Guard的使用详解
2013/06/03 PHP
PHP实现单例模式最安全的做法
2014/06/13 PHP
PHP容器类的两种实现方式示例
2019/07/24 PHP
Jquery cookie操作代码
2010/03/14 Javascript
JavaScript 设计模式之组合模式解析
2010/04/09 Javascript
JQuery UI DatePicker中z-index默认为1的解决办法
2010/09/28 Javascript
JavaScript创建对象的写法
2013/08/29 Javascript
Javascript中的Array数组对象详谈
2014/03/03 Javascript
js为什么不能正确处理小数运算?
2015/12/29 Javascript
浅谈javascript:两种注释,声明变量,定义函数
2016/09/29 Javascript
jquery pagination插件动态分页实例(Bootstrap分页)
2016/12/23 Javascript
easyui关于validatebox实现多重规则验证的方法(必看)
2017/04/12 Javascript
JS中Map和ForEach的区别
2018/02/05 Javascript
nodejs基于express实现文件上传的方法
2018/03/19 NodeJs
JavaScript和TypeScript中的void的具体使用
2019/09/12 Javascript
python subprocess 杀掉全部派生的子进程方法
2017/01/16 Python
python实现上传下载文件功能
2020/11/19 Python
python 递归遍历文件夹,并打印满足条件的文件路径实例
2017/08/30 Python
python字典快速保存于读取的方法
2018/03/23 Python
python3文件复制、延迟文件复制任务的实现方法
2019/09/02 Python
python 多进程队列数据处理详解
2019/12/23 Python
python speech模块的使用方法
2020/09/09 Python
查找适用于matplotlib的中文字体名称与实际文件名对应关系的方法
2021/01/05 Python
python 利用openpyxl读取Excel表格中指定的行或列教程
2021/02/06 Python
CSS3实现10种Loading效果
2016/07/11 HTML / CSS
越南综合购物网站:Lazada越南
2019/06/10 全球购物
经济信息管理专业大学生求职信
2013/09/27 职场文书
党员学习中共十八大思想报告
2014/09/12 职场文书
反四风对照检查材料
2014/09/22 职场文书
辞职信如何写
2015/02/27 职场文书
调任通知
2015/04/21 职场文书
2017年寒假少先队活动总结
2016/04/06 职场文书
OpenCV-Python实现轮廓拟合
2021/06/08 Python
海弦WR-800F
2022/04/05 无线电