深入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面向对象的方法重载两种版本比较
Sep 08 PHP
在PHP中设置、使用、删除Cookie的解决方法
May 06 PHP
解析PHP实现多进程并行执行脚本
Jun 18 PHP
php时区转换转换函数
Jan 07 PHP
php+memcache实现的网站在线人数统计代码
Jul 04 PHP
推荐几款用 Sublime Text 开发 Laravel 所用到的插件
Oct 30 PHP
PHP常用处理静态操作类
Apr 03 PHP
php源码分析之DZX1.5字符串截断函数cutstr用法
Jun 17 PHP
PHP5.3连接Oracle客户端及PDO_OCI模块的安装方法
May 13 PHP
PHP Mysqli 常用代码集合
Nov 12 PHP
php 读取文件夹下所有图片、文件的实例
Oct 17 PHP
PHP二维索引数组的遍历实例分析【2种方式】
Jun 24 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
Zend studio文件注释模板设置方法
2013/09/29 PHP
Zend Framework创建自己的动作助手详解
2016/03/05 PHP
JavaScript 类的定义和引用 JavaScript高级培训 自定义对象
2010/04/27 Javascript
IE6下通过a标签点击切换图片的问题
2010/11/14 Javascript
jquery对元素拖动排序示例
2014/01/16 Javascript
js点击事件链接的问题解决
2014/04/25 Javascript
IE浏览器不支持getElementsByClassName的解决方法
2014/08/27 Javascript
轻松实现jquery手风琴效果
2016/01/14 Javascript
javascript 数组的定义和数组的长度
2016/06/07 Javascript
JavaScript简单生成 N~M 之间随机数的方法
2017/01/13 Javascript
JavaScript函数参数的传递方式详解
2017/03/06 Javascript
angularjs中$http异步上传Excel文件方法
2018/02/23 Javascript
vue 多入口文件搭建 vue多页面搭建的实例讲解
2018/03/12 Javascript
WebPack配置vue多页面的技巧
2018/05/15 Javascript
基于Node.js搭建hexo博客过程详解
2019/06/25 Javascript
vue中使用element组件时事件想要传递其他参数的问题
2019/09/18 Javascript
jQuery实现的解析本地 XML 文档操作示例
2020/04/30 jQuery
JavaScript canvas实现文字时钟
2021/01/10 Javascript
python正则表达式及使用正则表达式的例子
2018/01/22 Python
python使用Flask操作mysql实现登录功能
2018/05/14 Python
Python 读写文件的操作代码
2018/09/20 Python
Numpy截取指定范围内的数据方法
2018/11/14 Python
django重新生成数据库中的某张表方法
2019/08/28 Python
python实现多线程端口扫描
2019/08/31 Python
python中np是做什么的
2020/07/21 Python
python读写数据读写csv文件(pandas用法)
2020/12/14 Python
实例讲解使用HTML5 Canvas绘制阴影效果的方法
2016/03/25 HTML / CSS
BISSELL官网:北美吸尘器第一品牌
2019/03/14 全球购物
台湾时尚彩瞳专门店:imeime
2019/08/16 全球购物
法国滑雪假期的专家:Ski Planet
2019/11/02 全球购物
Java面向对象面试题
2016/12/26 面试题
致800米运动员广播稿
2014/02/16 职场文书
十八届三中全会感言
2014/03/10 职场文书
维稳承诺书
2015/01/20 职场文书
音乐会主持人开场白
2015/05/28 职场文书
MySQL的安装与配置详细教程
2021/06/26 MySQL