zoukankan      html  css  js  c++  java
  • PHP生成GUID的函数

    GUID: 即Globally Unique Identifier(全球唯一标识符) 也称作 UUID(Universally Unique IDentifier) 。 GUID是一个通过特定算法产生的二进制长度为128位的数字标识符,用于指示产品的唯一性。GUID 主要用于在拥有多个节点、多台计算机的网络或系统中,分配必须具有唯一性的标识符。

    在 Windows 平台上,GUID 广泛应用于微软的产品中,用于标识如如注册表项、类及接口标识、数据库、系统目录等对象。 

    GUID 的格式为“xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx”,其中每个 x 是 0-9 或 a-f 范围内的一个32位十六进制数。例如:6F9619FF-8B86-D011-B42D-00C04FC964FF 即为有效的 GUID 值。 

    ★GUID在空间上和时间上具有唯一性,保证同一时间不同地方产生的数字不同。

    ★世界上的任何两台计算机都不会生成重复的 GUID 值。

    ★需要GUID的时候,可以完全由算法自动生成,不需要一个权威机构来管理。

    ★GUID的长度固定,并且相对而言较短小,非常适合于排序、标识和存储。

    PHP生成GUID的函数(摘自PHP手册)

    /**
     * 生成GUID
     */
    function create_guid() {
    	if (function_exists('com_create_guid') === true) {
    		return trim(com_create_guid(), '{}');
    	}
    
    	return sprintf('%04X%04X-%04X-%04X-%04X-%04X%04X%04X', mt_rand(0, 65535), mt_rand(0, 65535), mt_rand(0, 65535), mt_rand(16384, 20479), mt_rand(32768, 49151), mt_rand(0, 65535), mt_rand(0, 65535), mt_rand(0, 65535));
    }

    做了下优化(项目中常用):

    /**
     * 生成GUID
     */
    function string_make_guid() {
    	// 1、去掉中间的“-”,长度有36变为32
    	// 2、字母由“大写”改为“小写”
    	if (function_exists('com_create_guid') === true) {
    		return strtolower(str_replace('-', '', trim(com_create_guid(), '{}')));
    	}
    
    	return sprintf('%04x%04x%04x%04x%04x%04x%04x%04x', mt_rand(0, 65535), mt_rand(0, 65535), mt_rand(0, 65535), mt_rand(16384, 20479), mt_rand(32768, 49151), mt_rand(0, 65535), mt_rand(0, 65535), mt_rand(0, 65535));
    }
    
  • 相关阅读:
    Mac 远程连接 Windows
    更优雅的方式: JavaScript 中顺序执行异步函数
    Node.js 上传文件
    win10 系统右键菜单不显示文字(只有小图标)修复方法
    JavaScript 排序算法(JavaScript sorting algorithms)
    JavaScript addEventListener 第三个参数
    前端小白之每天学习记录----angula2--(1)
    H5如何与Native通信Hybrid交互--(1)
    vuex学习--(1)
    前端小白之每天学习记录----php(9)简单的api
  • 原文地址:https://www.cnblogs.com/52php/p/5677783.html
Copyright © 2011-2022 走看看