深入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获取数组中重复数据的两种方法
Jun 28 PHP
php读取csv文件后,uft8 bom导致在页面上显示出现问题的解决方法
Aug 10 PHP
简单的php文件上传(实例)
Oct 27 PHP
php递归创建目录的方法
Feb 02 PHP
PHP获取文件夹内文件数的方法
Mar 12 PHP
ThinkPHP框架安全实现分析
Mar 14 PHP
PHP实现的网站目录扫描索引工具
Sep 08 PHP
php实现基于pdo的事务处理方法示例
Jul 21 PHP
PHP长连接实现与使用方法详解
Feb 11 PHP
PHP堆栈调试操作简单示例
Jun 15 PHP
PDO::setAttribute讲解
Jan 29 PHP
PHP实现文件上传后台处理脚本
Mar 04 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
一个用于mysql的数据库抽象层函数库
2006/10/09 PHP
PHP中遇到的时区问题解决方法
2015/07/23 PHP
使用PHP实现生成HTML静态页面
2015/11/18 PHP
不用写JS也能使用EXTJS视频演示
2008/12/29 Javascript
解javascript 混淆加密收藏
2009/01/16 Javascript
根据鼠标的位置动态的控制层的位置
2009/11/24 Javascript
JavaScript 高效运行代码分析
2010/03/18 Javascript
Javascript判断对象是否相等实现代码
2013/03/18 Javascript
JS日期和时间选择控件升级版(自写)
2013/08/02 Javascript
JavaScript中json使用自己总结
2013/08/13 Javascript
javascript实现页面内关键词高亮显示代码
2014/04/03 Javascript
js获取及判断键盘按键的方法
2015/12/01 Javascript
javascript日期验证之输入日期大于等于当前日期
2015/12/13 Javascript
jquery+json实现分页效果
2016/03/07 Javascript
Jquery AJAX POST与GET之间的区别详细介绍
2016/10/17 Javascript
Move.js入门
2017/02/08 Javascript
浅谈jQuery中的$.extend方法来扩展JSON对象
2017/02/12 Javascript
详解nodeJS之路径PATH模块
2017/05/31 NodeJs
angularjs数组判断是否含有某个元素的实例
2018/02/27 Javascript
vue elementUI 表单校验功能之数组多层嵌套
2019/06/04 Javascript
如何在Vue中抽离接口配置文件
2019/10/31 Javascript
vue实现动态给id赋值,点击事件获取当前点击的元素的id操作
2020/11/09 Javascript
Python中的zip函数使用示例
2015/01/29 Python
Python内置函数Type()函数一个有趣的用法
2015/02/18 Python
Python简直是万能的,这5大主要用途你一定要知道!(推荐)
2019/04/03 Python
TensorFlow学习之分布式的TensorFlow运行环境
2020/02/05 Python
python GUI库图形界面开发之PyQt5窗口背景与不规则窗口实例
2020/02/25 Python
Python命名空间namespace及作用域原理解析
2020/06/05 Python
高中军训感想800字
2014/02/23 职场文书
2014年机关植树节活动方案
2014/02/27 职场文书
丧事主持词大全
2014/04/02 职场文书
村长贪污检举信
2014/04/04 职场文书
反四风对照检查材料
2014/09/22 职场文书
中秋晚会致辞
2015/07/31 职场文书
Canvas绘制像素风图片的示例代码
2021/09/25 HTML / CSS
Windows server 2022创建创建林、域树、子域的步骤
2022/06/25 Servers