PHP之uniqid()函数用法


Posted in PHP onNovember 03, 2014

本文实例讲述了PHP中uniqid()函数的用法。分享给大家供大家参考。具体方法分析如下:

uniqid() 函数基于以微秒计的当前时间,生成一个唯一的 ID。
注释:由于基于系统时间,通过该函数生成的 ID 不是最佳的。如需生成绝对唯一的 ID,请使用 md5() 函数(请在字符串函数参考中查找)。

<?php

echo uniqid();

?>

本例产生 32 个字符的独一无二字符串。
<?php

$token = md5(uniqid(rand()));

echo $token;

?>

 
uniqid() 返回一个带前缀的唯一标识基于当前时间精确到微秒.
只是说基于当前时间,但是没有说明与当前时间的关系如何。
echo uniqid();可以看到uniqid始终是一个不断变化的长度为13的十六进制数。

来看看下面这段代码:

<?php

echo hexdec(uniqid())/(time()+microtime()); 

?>

输出基本上在1048576左右。

可以断定,uniqid就是当前时间精确到微秒再乘以1048576(2的20次幂)最后转换为十六进制得到的。
知道uniqid与time的关系后uniqid就可以有更广泛的用途了,比如在论坛中可以用uniqid作为帖子的文件名。

做在帖子索引中,可以很方便的按时间查找帖子。

结合上下代码看,我想他的作用是生成一个不重复的32位字符吧

uniqid() 函数本身就是基于以微秒计的当前时间,所以在高并发的情况下肯定会出现重复的情况,解决的的方法是你可以在这个前提下再生成一个随机数,然后两者结合后产生出一个新的数,这样就会降低重复的概率。如果还是想要再精确的话还可以加上客户端的IP的Md5码来一同生成,这样应该重复的概率就极低了,可以说是几乎不会重复。

<?php

function getRand(){

    return uniqid() . rand(1, 100000);

}

echo getRand();

exit;

?>

希望本文所述对大家的PHP程序设计有所帮助。

PHP 相关文章推荐
用PHP连mysql和oracle数据库性能比较
Oct 09 PHP
Discuz! Passport 通行证整合
Mar 27 PHP
利用phpExcel实现Excel数据的导入导出(全步骤详细解析)
Nov 26 PHP
php中AES加密解密的例子小结
Feb 18 PHP
php+ajax无刷新上传图片实例代码
Nov 17 PHP
php基于websocket搭建简易聊天室实践
Oct 24 PHP
PHPExcel中文帮助手册|PHPExcel使用方法(分享)
Jun 09 PHP
PHP实现下载远程图片保存到本地的方法
Jun 19 PHP
360搜索引擎自动收录php改写方案
Apr 28 PHP
PHP实现微信提现功能(微信商城)
Nov 21 PHP
PHP实现简易图形计算器
Aug 28 PHP
如何用PHP实现分布算法之一致性哈希算法
May 26 PHP
PHP实现Soap通讯的方法
Nov 03 #PHP
ThinkPHP实现二级循环读取的方法
Nov 03 #PHP
ThinkPHP写数组插入与获取最新插入数据ID实例
Nov 03 #PHP
ThinkPHP有变量的where条件分页实例
Nov 03 #PHP
PHP的拦截器实例分析
Nov 03 #PHP
php类中的各种拦截器用法分析
Nov 03 #PHP
PHP类的反射用法实例
Nov 03 #PHP
You might like
十大催泪虐心动漫,你能坚持看到第几部?
2020/03/04 日漫
sqlyog 中文乱码问题的设置方法
2008/10/19 PHP
PHP实现的连贯操作、链式操作实例
2014/07/08 PHP
农历与西历对照
2006/09/06 Javascript
javascript 基础篇3 类,回调函数,内置对象,事件处理
2012/03/14 Javascript
jquery实现简单的拖拽效果实例兼容所有主流浏览器(优化篇)
2013/06/28 Javascript
不使用jquery实现js打字效果示例分享
2014/01/19 Javascript
JavaScript中的Truthy和Falsy介绍
2015/01/01 Javascript
jquery让指定的元素闪烁显示的方法
2015/03/17 Javascript
JSON与XML优缺点对比分析
2015/07/17 Javascript
jquery+ajax实现注册实时验证实例详解
2015/12/08 Javascript
jQuery实现表格文本框淡入更改值后淡出效果
2016/09/27 Javascript
jquery实现图片放大点击切换
2017/06/06 jQuery
帝国cms首页列表页实现点赞功能
2017/10/30 Javascript
vue购物车插件编写代码
2017/11/27 Javascript
vue组件中watch props根据v-if动态判断并挂载DOM的问题
2019/05/12 Javascript
react国际化化插件react-i18n-auto使用详解
2020/03/31 Javascript
Vue作用域插槽实现方法及作用详解
2020/07/08 Javascript
JS轮播图的实现方法
2020/08/24 Javascript
[57:18]DOTA2上海特级锦标赛主赛事日 - 1 败者组第一轮#3VP VS VG
2016/03/03 DOTA
Python描述器descriptor详解
2015/02/03 Python
Python实现提取文章摘要的方法
2015/04/21 Python
CentOS 7下安装Python 3.5并与Python2.7兼容并存详解
2017/07/07 Python
Django Docker容器化部署之Django-Docker本地部署
2019/10/09 Python
python json load json 数据后出现乱序的解决方案
2020/02/27 Python
CSS3实现的渐变幻灯片效果
2020/12/07 HTML / CSS
Lookfantastic法国官网:英国知名美妆购物网站
2017/10/28 全球购物
2013年办公室秘书的个人自我鉴定
2013/10/24 职场文书
会计学应届毕业生推荐信
2013/11/04 职场文书
质量月活动策划方案
2014/03/10 职场文书
2014年六一儿童节演讲稿
2014/05/23 职场文书
六一儿童节活动总结
2014/08/27 职场文书
中学生的1000字检讨书
2014/10/11 职场文书
单身证明范本
2015/06/15 职场文书
python urllib库的使用详解
2021/04/13 Python
如何将numpy二维数组中的np.nan值替换为指定的值
2021/05/14 Python