php生成局部唯一识别码LUID的代码


Posted in PHP onOctober 06, 2012

UUID(Universally Unique Identifier),GUID都是希望在整个时空范围内能产生唯一识别码,这在分布式计算环境下是必要的. 然而,如果仅仅是想在一个受限定的局部环境下,想生成一个"局部唯一识别码",使用UUID就是杀鸡用牛刀,这个"局部唯一识别码",我称之为LUID(Local Unique Identifier)

比如我在用php开发网站程序时,为避免用户同时多次打开同一个网页导致session名称冲突问题, 就希望保存的session不是$_SESSION['param'],而是$_SESSION[$luid]['param'],再通过其他方式传递$luid值,保证'param'参数不被覆盖. 查找了一下别人的解决方式,都是生成UUID,而生成UUID的算法洋洋洒洒上百行. 我考虑到因为是在SESSION空间里,是一个受限定的环境,其唯一性的强度不必太高,只要在同一个SESSION的生存期限内唯一就可以了,于是便有了下面的代码:

/** 
* 返回一个唯一在本地系统中独一无二的字符串, 
* 返回的是32个字符的字符串,形式如'7dac352074f221f3edc74d265c65a636',或'd198d8fc56ffed627f3f8313d6f06acf' 
*/ 
function LUID(){ 
return MD5(microtime()); 
}

其实就一行.return MD5(microtime());

按道理microtime()返回的字符串就已经是唯一的了,我测了一下,即使连续执行microtime(),返回值也有100us以上的差别,而使用者点击,并在网络上传递再由服务器处理的间隔远不止几十ms. 加上md5只是让结果杂乱化.

PHP 相关文章推荐
网友原创的PHP模板类代码
Sep 07 PHP
php实现文件下载(支持中文文名)
Dec 04 PHP
PHP判断表单复选框选中状态完整例子
Jun 24 PHP
PHP邮件发送类PHPMailer用法实例详解
Sep 22 PHP
php中socket通信机制实例详解
Jan 03 PHP
初识通用数据库操作类――前端easyui-datagrid,form(php)
Jul 31 PHP
PHP安装threads多线程扩展基础教程
Nov 17 PHP
YiiFramework入门知识点总结(图文教程)
Dec 28 PHP
php获取POST数据的三种方法实例详解
Dec 20 PHP
thinkPHP框架自动填充原理与用法分析
Apr 03 PHP
PHP命令Command模式用法实例分析
Aug 08 PHP
Centos7 Yum安装PHP7.2流程教程详解
Jul 02 PHP
PHP实现提取一个图像文件并在浏览器上显示的代码
Oct 06 #PHP
PHP中3种生成XML文件方法的速度效率比较
Oct 06 #PHP
PHP中的生成XML文件的4种方法分享
Oct 06 #PHP
PHP 正则表达式之正则处理函数小结(preg_match,preg_match_all,preg_replace,preg_split)
Oct 05 #PHP
PHP正则表达式之定界符和原子介绍
Oct 05 #PHP
PHP超级全局变量数组小结
Oct 04 #PHP
PHP中数字检测is_numeric与ctype_digit的区别介绍
Oct 04 #PHP
You might like
PHP获取php,mysql,apche的版本信息示例代码
2014/01/16 PHP
ThinkPHP3.1新特性之字段合法性检测详解
2014/06/19 PHP
ThinkPHP的截取字符串函数无法显示省略号的解决方法
2014/06/25 PHP
PHP数组相关函数汇总
2015/03/24 PHP
详解PHP中curl_multi并发的实现
2020/06/08 PHP
jquery中常用的函数和属性详细解析
2014/03/07 Javascript
node.js下when.js 的异步编程实践
2014/12/03 Javascript
js实现星星打分效果的方法
2020/07/05 Javascript
动态JavaScript所造成一些你不知道的危害
2016/09/25 Javascript
jQuery实现动态文字搜索功能
2017/01/05 Javascript
兼容浏览器的js事件绑定函数(详解)
2017/05/09 Javascript
vue滚动轴插件better-scroll使用详解
2017/10/17 Javascript
Node.js Buffer用法解读
2018/05/18 Javascript
微信小程序云开发之新手环境配置
2019/05/16 Javascript
关于layui的动态图标不显示的解决方法
2019/09/04 Javascript
使用layui实现树形结构的方法
2019/09/20 Javascript
Vue之Mixins(混入)的使用方法
2019/09/24 Javascript
浅谈JS for循环中使用break和continue的区别
2020/07/21 Javascript
微信小程序换肤功能实现代码(思路详解)
2020/08/25 Javascript
浅谈Python中数据解析
2015/05/05 Python
Python的Flask框架应用调用Redis队列数据的方法
2016/06/06 Python
Python面向对象class类属性及子类用法分析
2018/02/02 Python
解决Python网页爬虫之中文乱码问题
2018/05/11 Python
django静态文件加载的方法
2018/05/20 Python
pandas使用get_dummies进行one-hot编码的方法
2018/07/10 Python
Python地图绘制实操详解
2019/03/04 Python
PYTHON如何读取和写入EXCEL里面的数据
2019/10/28 Python
python科学计算之scipy——optimize用法
2019/11/25 Python
解决Python二维数组赋值问题
2019/11/28 Python
英国100%防污和防水的靴子:Muck Boot Company
2020/09/08 全球购物
关于读书的演讲稿400字
2014/08/27 职场文书
教师拔河比赛广播稿
2014/10/14 职场文书
小学教师2014年度工作总结
2014/12/03 职场文书
个人先进材料范文
2014/12/30 职场文书
2015年大班保育员工作总结
2015/05/18 职场文书
2016秋季田径运动会广播稿
2015/12/21 职场文书