图灵编程

php几种简单的生成唯一标志的方法

2016-12-20  本文已影响31人  jack_jt_z

在使用php生产时我们经常会遇到一些生成唯一标识的问题:

NO1:数据库自增,完全满足小生产环境

大多数情况我们会用到自增的办法去处理---auto_increment

一些时候我们可以配合步长的方法解决完成实际的生产。

注:自增的话,MySQL是可以保证递增,但删记录后可能有问题。另外有序的流水号可能会泄露业务数据。

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

public functioncreate_guid(){

       $charid=strtoupper(md5(uniqid(mt_rand(), true)));

      $hyphen=chr(45);// "-"

      $uuid = substr($charid, 6, 2).substr($charid, 4, 2).substr($charid, 2, 2).substr($charid, 0, 2).$hyphen .substr($charid, 10, 2).substr($charid, 8, 2).$hyphen .substr($charid,14, 2).substr($charid,12, 2).$hyphen .substr($charid,16, 4).$hyphen .substr($charid,20,12);

       return $uuid;

}

NO3:自带函数或加密算法解决无并发生产

PHP 常用的有 MD5()  sha() 算法配合time()生成或者使用uniquid()函数

NO4:microtime()

$time=explode(' ',microtime());

return base_convert(($time[1].($time[0]*100000000)),10,32);

上一篇 下一篇

猜你喜欢

热点阅读