很多站长朋友们都不太清楚php生成uuid,今天小编就来给大家整理php生成uuid,希望对各位有所帮助,具体内容如下:
本文目录一览: 1、 thinkphp订单号怎么生成 2、 如何用phpfor循环生成5位,数字字母组合,永不不重复 3、 为什么是UUID做主键 4、 php微信开发,微信有什么可以获取的唯一标识一个用户的变量吗?怎么获取? 5、 uuid前端生成还是后端生成 thinkphp订单号怎么生成PHP 生成订单号,GUID 方法
生成订单号
function build_order_no() {
return date('Ymd').substr(implode(NULL, array_map('ord', str_split(substr(uniqid(), 7, 13), 1))), 0, 8);
}
生成GUID
function guid() {
if (function_exists('com_create_guid')) {
return com_create_guid();
} else {
mt_srand((double)microtime()*10000);
$charid = strtoupper(md5(uniqid(rand(), true)));
$hyphen = chr(45);
$uuid = chr(123)
.substr($charid, 0, 8).$hyphen
.substr($charid, 8, 4).$hyphen
.substr($charid,12, 4).$hyphen
.substr($charid,16, 4).$hyphen
.substr($charid,20,12)
.chr(125);
return $uuid;
}
}
如何用phpfor循环生成5位,数字字母组合,永不不重复如果你希望永不重复 建议采用 PHP GUID
GUID是什么
GUID: 即Globally Unique Identifier(全球唯一标识符) 也称作 UUID(Universally Unique IDentifier) 。 GUID是一个通过特定算法产生的二进制长度为128位的数字标识符,用于指示产品的唯一性。GUID 主要用于在拥有多个节点、多台计算机的网络或系统中,分配必须具有唯一性的标识符。
PHP中并不提供GUID的内部实现。为此我们可以自己写算法实现。代码片段如下:
function create_guid() {
$charid = strtoupper(md5(uniqid(mt_rand(), true)));
$hyphen = chr(45);// "-"
$uuid = chr(123)// "{"
.substr($charid, 0, 8).$hyphen
.substr($charid, 8, 4).$hyphen
.substr($charid,12, 4).$hyphen
.substr($charid,16, 4).$hyphen
.substr($charid,20,12)
.chr(125);// "}"
return $uuid;
}
为什么是UUID做主键那么我们先看看什么是UUID?简单的说,UUID是指在一台机器上生成的数字,它保证对在同一时空中的所有机器都是唯一的。在UUID的算法中,可能会用到诸如网卡MAC地址,IP,主机名,进程ID等信息以保证其独立性.
优点:
能够保证独立性,程序可以在不同的数据库间迁移,效果不受影响。
保证生成的ID不仅是表独立的,而且是库独立的,这点在你想切分数据库的时候尤为重要。
缺点:
比较占地方,和INT类型相比,存储一个UUID要花费更多的空间。
使用UUID后,URL显得冗长,不够友好。
那么如何生成UUID,一个自动生成不重复文本的函数,Hibernate提供的uuid.
hibernate中的uuid是自动生成主键的一种机制,但是它依赖于hiberbate包,刚刚将它从Hibernate中提取出来,(从其他博客和公司的组件代码中发现了UUID的生成类)供各位使用.
下面针对上述UUID的缺点说说我的看法,比较占地方这个缺点我不是很在乎,现在最不值钱的就是硬盘了,略过此条缺点无妨。至于说使用UUID后,URL显得不友好,我觉得这多少是你的INT情结造成的惯性思维,其实,和INT类型相比,UUID才是最自然的主键选择,注意,我这里用的是自然这个形容词,仔细体会一下你能理解我的意思。另外,很多时候,URL本身就不需要友好,比如,一个电子商务网站,按照INT友好的URL说法,她的订单URL大概是下面这个形式的:/order.php/id/123,我要说明的是,这样是很友好,但是有些太友好了,友好的甚至不安全,比如说,我早晨下一个订单,发现URL是/order.php/id/1000,晚上再下一个订单发现URL是/order.php/id/2000,那么我就可以估计出此网站一天的订单数大致是1000左右,甚至能大体估计出它的销售额,而这些数据往往都是重要的商业秘密。使用UUID就没有这个顾虑。
php微信开发,微信有什么可以获取的唯一标识一个用户的变量吗?怎么获取?唯一标识是openid,获取方法参考微信api相关文档,这个回答好像是废话,但我只能这么回答
uuid前端生成还是后端生成uuid是在前端生成。
前端在做增删改查时通常会使用一个唯一数值做为数据的key值,而有时数据本身没有做为标识的数值, 使用下标的话有时会引发一些隐蔽的bug, 因此发现了uuid这个包,可生成唯一uuid
在前端生成的方法如下:
页面只需要引入,然后直接调用generateUUID()即可
export const generateUUID = () => {
var d = new Date().getTime();
if (window.performance typeof window.performance.now === "function") {
d += performance.now(); //use high-precision timer if available
}
var uuid = "xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g, function (c) {
var r = (d + Math.random() * 16) % 16 | 0;
d = Math.floor(d / 16);
return (c == "x" ? r : (r 0x3) | 0x8).toString(16);
});
return uuid;};
关于php生成uuid的介绍到此就结束了,不知道本篇文章是否对您有帮助呢?如果你还想了解更多此类信息,记得收藏关注本站,我们会不定期更新哦。
查看更多关于php生成uuid php生成随机6位数的详细内容...