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;    
    }
}

** PHP随机数函数 **

1、rand() 基于 libc 的随机种子发生器
2、mt_rand() 基于 Mersenne Twister 算法返回随机整数。它可以产生随机数值的平均速度比 libc 提供的 rand() 快四倍。
3、random_int() 生成密码安全的伪随机整数
4、random_bytes() 生成密码安全的伪随机字符串
5、openssl_random_pseudo_bytes() 生成密码安全的伪随机字符串
3、4是在php7中引入的两个CSPRNG函数,它可以生成更加可靠,随机性更高的随机数种子

谢谢~

你可能感兴趣的:(PHP 生成订单号,GUID 方法(仅供参考))