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

2015-01-24信息快讯网

php中返回一个唯一在本地系统中独一无二的字符串,需要的朋友可以参考下

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 GUID生成函数和类
php小经验:解析preg_match与preg_match_all 函数
解析php session_set_save_handler 函数的用法(mysql)
使用PHP获取当前url路径的函数以及服务器变量
如何使用PHP实现javascript的escape和unescape函数
解析php中的escape函数
php 批量生成html,txt文件的实现代码
探讨:如何使用PhpDocumentor生成文档
PHP随机字符串生成代码(包括大小写字母)
php 备份数据库代码(生成word,excel,json,xml,sql)
浅析PHP页面局部刷新功能的实现小结
PHP操作MongoDB GridFS 存储文件的详解
基于PHP服务端图片生成缩略图的方法详解
Android ProgressBar进度条和ProgressDialog进度框的展示DEMO
$_GET['goods_id']+0 的使用详解
php 生成唯一id的几种解决方法
php中存储用户ID和密码到mysql数据库的方法
PHP生成唯一的促销/优惠/折扣码(附源码)
PHP面向对象学习笔记之一 基础概念
PHP实现提取一个图像文件并在浏览器上显示的代码
PHP中3种生成XML文件方法的速度效率比较
PHP中的生成XML文件的4种方法分享
PHP 正则表达式之正则处理函数小结(preg_match,preg_match_all,preg_replace,preg_split)
PHP正则表达式之定界符和原子介绍
PHP 透明水印生成代码
php生成静态文件的多种方法分享
php生成略缩图代码
PHP通过session id 实现session共享和登录验证的代码
PHP和JAVA中的重载(overload)和覆盖(override) 介绍
使用php+Ajax实现唯一校验实现代码[简单应用]
PHP下利用shell后台运行PHP脚本,并获取该脚本的Process ID的代码
php设计模式 Bridge (桥接模式)
提高define性能的php扩展hidef的安装和使用
PHP下通过exec获得计算机的唯一标识[CPU,网卡 MAC地址]
对squid中refresh_pattern的一些理解和建议
PHP Squid中可缓存的动态网页设计
今日局部仍有雷阵雨 最高气温30℃
©2014-2024 dbsqp.com