深入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 xml实例 留言本
Mar 20 PHP
PHP 函数学习简单小结
Jul 08 PHP
深入解析php中的foreach函数
Aug 31 PHP
PHP网页游戏学习之Xnova(ogame)源码解读(七)
Jun 23 PHP
php格式化金额函数分享
Feb 02 PHP
php把大写命名转换成下划线分割命名
Apr 27 PHP
smarty内部日期函数html_select_date()用法实例分析
Jul 08 PHP
PHP GD库相关图像生成和处理函数小结
Sep 30 PHP
PHP实现基于栈的后缀表达式求值功能
Nov 10 PHP
laravel实现Auth认证,登录、注册后的页面回跳方法
Sep 30 PHP
Laravel5.5 视图 - 创建视图和数据传递示例
Oct 21 PHP
Yii框架 session 数据库存储操作方法示例
Nov 18 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
PHP5权威编程阅读学习笔记 附电子书下载
2012/07/05 PHP
Window 7/XP 安装Apache 2.4与PHP 5.4 的过程详解
2013/06/02 PHP
如何修改和添加Apache的默认站点目录
2013/07/05 PHP
PHP快速按行读取CSV大文件的封装类分享(也适用于其它超大文本文件)
2014/04/10 PHP
PHP获取网站中各文章的第一张图片的代码示例
2016/05/20 PHP
PHP中file_put_contents追加和换行的实现方法
2017/04/01 PHP
PHP实现微信申请退款功能
2018/10/01 PHP
PHP安装扩展mcrypt以及相关依赖项深入讲解
2021/03/04 PHP
jquery多浏览器捕捉回车事件代码
2010/06/22 Javascript
JS格式化数字金额用逗号隔开保留两位小数
2013/10/18 Javascript
Mac/Windows下如何安装Node.js
2013/11/22 Javascript
JS实现关键字搜索时的相关下拉字段效果
2014/08/05 Javascript
分析js闭包引起的事件注册问题
2016/03/29 Javascript
手机端图片缩放旋转全屏查看PhotoSwipe.js插件实现
2016/08/25 Javascript
基于Vue实现拖拽效果
2018/04/27 Javascript
微信小程序自定义组件的实现方法及自定义组件与页面间的数据传递问题
2018/10/09 Javascript
vue 自定义右键样式的实例代码
2019/11/06 Javascript
详细介绍Python中的偏函数
2015/04/27 Python
python 根据正则表达式提取指定的内容实例详解
2016/12/04 Python
python对list中的每个元素进行某种操作的方法
2018/06/29 Python
Python turtle绘画象棋棋盘
2019/08/21 Python
Opencv图像处理:如何判断图片里某个颜色值占的比例
2020/06/03 Python
Python截图并保存的具体实例
2021/01/14 Python
is_file和file_exists效率比较
2021/03/14 PHP
使用phonegap进行本地存储的实现方法
2017/03/31 HTML / CSS
《在家里》教后反思
2014/03/01 职场文书
护士毕业实习感言
2014/03/05 职场文书
团队经理竞聘书
2014/03/31 职场文书
四年级评语大全
2014/04/21 职场文书
计算机网络及管理学专业求职信
2014/06/05 职场文书
激励员工的口号
2014/06/16 职场文书
小学生交通安全寄语
2015/02/27 职场文书
大学生自我评价范文
2015/03/03 职场文书
2015年乡镇安全生产工作总结
2015/05/19 职场文书
《去年的树》教学反思
2016/02/18 职场文书
如何创建一个创建MySQL数据库中的datetime类型
2022/03/21 MySQL