• 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));
    }
    
  • 相关阅读:
    flume杀掉重启
    Tomcat访问日志浅析 (转)
    httpclient Accept-Encoding 乱码
    解决Maven报Plugin execution not covered by lifecycle configuration
    mahout基于Hadoop的CF代码分析(转)
    hadoop Mahout中相似度计算方法介绍(转)
    nginx配置文件结构,语法,配置命令解释
    nginx 中文和英文资料
    使用异步 I/O 大大提高应用程序的性能
    nginx AIO机制与sendfile机制
  • 原文地址:https://www.cnblogs.com/52php/p/5677783.html
Copyright © 2020-2023  润新知