PHP Guid生成

文章介绍了GUID的概念,它是全球唯一标识符,用于确保在分布式环境中的唯一性。提供了两种PHP函数,一种生成36位含连字符的GUID,另一种生成32位无连字符并转为小写的GUID。这两种方法都基于随机数生成。
摘要由CSDN通过智能技术生成

PHP GUID 生成

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位十六进制数。例如:A9550B2E-A0D5-4206-B045-6596D6DEE881 即为有效的 GUID 值。

GUID性质

  1. GUID在空间上和时间上具有唯一性,保证同一时间不同地方产生的数字不同。
  2. 世界上的任何两台计算机都不会生成重复的 GUID 值。
  3. 需要GUID的时候,可以完全由算法自动生成,不需要一个权威机构来管理。
  4. GUID的长度固定,并且相对而言较短小,非常适合于排序,标识和存储。

生成GUID

1. 长度36位包含 -

/**
 * 生成GUID
 *  36位包含'-'
 */
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));
}

2. 长度32位不包含

/**
 * 生成GUID
 *  1、去掉中间的'-',长度有36变为32
 *  2、字母由大写改为小写
 */
function string_make_guid() {
	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));
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值