• 技术文章 >php教程 >php手册

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

    2016-06-13 11:57:37原创309
    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只是让结果杂乱化.
    声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。
    上一篇:记录PHP错误日志 display_errors与log_errors的区别 下一篇:PHP中几种常见的超时处理全面总结
    Web大前端开发直播班

    相关文章推荐

    • web上存漏洞及原理分析、防范方法(安全文件上存方法)• 浅析php变量修饰符static的使用• PHP支持多种格式图片上传(支持jpg、png、gif)• 在Windows系统上安装PHP运行环境文字教程• PHP中函数内引用全局变量的方法
    1/1

    PHP中文网