深入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 相关文章推荐
调整优化您的LAMP应用程序的5种简单方法
Jun 26 PHP
PHP连接SQLServer2005的实现方法(附ntwdblib.dll下载)
Jul 02 PHP
PHP中操作ini配置文件的方法
Apr 25 PHP
解析CI即CodeIgniter框架在Nginx下的重写规则
Jun 03 PHP
如何用php生成扭曲及旋转的验证码图片
Jun 07 PHP
ThinkPHP模板自定义标签使用方法
Jun 26 PHP
PHP中的日期加减方法示例
Aug 21 PHP
php生成xml时添加CDATA标签的方法
Oct 17 PHP
php抽象类使用要点与注意事项分析
Feb 09 PHP
Linux系统下PHP-FPM的安装和配置教程
Aug 17 PHP
Yii2实现让关联字段支持搜索功能的方法
Aug 10 PHP
tp5框架基于ajax实现异步删除图片的方法示例
Feb 10 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
Smarty Foreach 使用说明
2010/03/23 PHP
一个PHP验证码类代码分享(已封装成类)
2011/07/17 PHP
php中防止SQL注入的最佳解决方法
2013/04/25 PHP
php实现中文转数字
2016/02/18 PHP
利用phpexcel对数据库数据的导入excel(excel筛选)、导出excel
2017/04/27 PHP
Laravel中使用Queue的最基本操作教程
2017/12/27 PHP
javascript HTMLEncode HTMLDecode的完整实例(兼容ie和火狐)
2009/06/02 Javascript
ExtJs Excel导出并下载IIS服务器端遇到的问题
2011/09/16 Javascript
jQuery aminate方法定位到页面具体位置
2013/12/26 Javascript
Node.js中使用socket创建私聊和公聊聊天室
2015/11/19 Javascript
学习JavaScript图片预加载模块
2016/11/07 Javascript
JavaScript自定义浏览器滚动条兼容IE、 火狐和chrome
2017/01/05 Javascript
使用vue.js编写蓝色拼图小游戏
2017/03/17 Javascript
详解vue模拟加载更多功能(数据追加)
2017/06/23 Javascript
JS与HTML结合实现流程进度展示条思路详解
2017/09/03 Javascript
JS实现中文汉字按拼音排序的方法
2017/10/09 Javascript
vue 中filter的多种用法
2018/04/26 Javascript
js canvas实现橡皮擦效果
2018/12/20 Javascript
jQuery实现表格的增、删、改操作示例
2019/01/27 jQuery
jQuery实现简单QQ聊天框
2020/08/27 jQuery
Python面向对象编程中关于类和方法的学习笔记
2016/06/30 Python
Python selenium文件上传方法汇总
2020/11/19 Python
一个基于flask的web应用诞生 使用模板引擎和表单插件(2)
2017/04/11 Python
Python面向对象程序设计类变量与成员变量、类方法与成员方法用法分析
2019/04/12 Python
Python查找不限层级Json数据中某个key或者value的路径方式
2020/02/27 Python
英国女装网上商店:I Saw It First
2018/10/18 全球购物
澳大利亚在线性感内衣商店:Fantasy Lingerie
2021/02/07 全球购物
中学生运动会入场词
2014/02/12 职场文书
大学生未来职业生涯规划书
2014/02/15 职场文书
森林防火宣传标语
2014/06/27 职场文书
国庆促销活动总结
2014/08/29 职场文书
2014保险公司个人工作总结
2014/12/09 职场文书
英语教师个人工作总结
2015/02/09 职场文书
结婚喜宴迎宾词
2015/08/10 职场文书
css布局巧妙技巧之css三角示例的运用
2022/03/16 HTML / CSS
Jmerte 分布式压测及分布式压测配置
2022/04/30 Java/Android