深入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 相关文章推荐
asp和php下textarea提交大量数据发生丢失的解决方法
Jan 20 PHP
将文件夹压缩成zip文件的php代码
Dec 14 PHP
php 中文和编码判断代码
May 16 PHP
ThinkPHP与PHPExcel冲突解决方法
Aug 08 PHP
使用图灵api创建微信聊天机器人
Jul 23 PHP
orm获取关联表里的属性值
Apr 17 PHP
PHP单例模式是什么 php实现单例模式的方法
May 14 PHP
PHP内存缓存功能memcached示例
Oct 19 PHP
浅析PHP中的闭包和匿名函数
Dec 25 PHP
ThinkPHP5.0 图片上传生成缩略图实例代码说明
Jun 20 PHP
不常用但很实用的PHP预定义变量分析
Jun 25 PHP
Laravel jwt 多表(多用户端)验证隔离的实现
Dec 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
php中实现xml与mysql数据相互转换的方法
2014/12/25 PHP
thinkPHP中钩子的使用方法实例分析
2017/11/16 PHP
让whoops帮我们告别ThinkPHP6的异常页面
2020/03/02 PHP
使用Rancher在K8S上部署高性能PHP应用程序的教程
2020/07/10 PHP
超级强大的表单验证
2006/06/26 Javascript
Javascript UrlDecode函数代码
2010/01/09 Javascript
基于JavaScript 类的使用详解
2013/05/07 Javascript
javascript中怎么做对象的类型判断
2013/11/11 Javascript
使用jQuery实现更改默认alert框体
2015/04/13 Javascript
jquery ztree实现树的搜索功能
2016/02/25 Javascript
纯JS代码实现一键分享功能
2016/04/20 Javascript
用JavaScript获取页面文档内容的实现代码
2016/06/10 Javascript
JavaScript中日期函数的相关操作知识
2016/08/03 Javascript
js eval函数使用,js对象和字符串互转实例
2017/03/06 Javascript
JQuery 进入页面默认给已赋值的复选框打钩
2017/03/23 jQuery
微信小程序实战之顶部导航栏(选项卡)(1)
2020/06/19 Javascript
详解ECMAScript6入门--Class对象
2017/04/27 Javascript
解决循环中setTimeout执行顺序的问题
2018/06/20 Javascript
javascript闭包的使用之按钮切换功能
2018/08/30 Javascript
JQuery实现ajax请求的示例和注意事项
2018/12/10 jQuery
详解vue使用插槽分发内容slot的用法
2019/03/28 Javascript
js如何获取访问IP、地区、当前操作浏览器
2019/07/23 Javascript
js制作提示框插件
2020/12/24 Javascript
linux系统使用python获取内存使用信息脚本分享
2014/01/15 Python
python登录并爬取淘宝信息代码示例
2017/12/09 Python
python逐行读写txt文件的实例讲解
2018/04/03 Python
Python使用gRPC传输协议教程
2018/10/16 Python
浅谈Python中的可迭代对象、迭代器、For循环工作机制、生成器
2019/03/11 Python
Python利用全连接神经网络求解MNIST问题详解
2020/01/14 Python
CSS3教程(3):border-color网页边框色彩
2009/04/02 HTML / CSS
CSS3实现菜单悬停效果
2020/11/17 HTML / CSS
一份报关员的职业规划范文
2014/01/08 职场文书
30岁生日感言
2014/01/25 职场文书
《要下雨了》教学反思
2014/02/17 职场文书
学生早退检讨书(范文)
2019/08/19 职场文书
详解TS数字分隔符和更严格的类属性检查
2021/05/06 Javascript