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));
    }
    
  • 相关阅读:
    关闭编辑easyui datagrid table
    sql 保留两位小数+四舍五入
    easyui DataGrid 工具类之 util js
    easyui DataGrid 工具类之 后台生成列
    easyui DataGrid 工具类之 WorkbookUtil class
    easyui DataGrid 工具类之 TableUtil class
    easyui DataGrid 工具类之 Utils class
    easyui DataGrid 工具类之 列属性class
    oracle 卸载
    “云时代架构”经典文章阅读感想七
  • 原文地址:https://www.cnblogs.com/52php/p/5677783.html
Copyright © 2011-2022 走看看