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函数,它可以生成更加可靠,随机性更高的随机数种子

谢谢~

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 首先,订单号不适合用自增字段,因为会暴露一个网站的业务量。另外,通常在订单在写入数据库之前,业务就需要用到订单号了...
    大表哥2017阅读 1,118评论 0 1
  • 小伙伴们在日常的商城项目开发中,都会遇到订单号生成的问题,今天呢小编就带领大家去解读一下生成订单号的问题! 首...
    思梦PHP阅读 6,391评论 2 1
  • 转载:1号店订单系统水平分库的实践之路以及关键步骤 随着大型互联网应用的发展,海量数据的存储和访问成为系统设计的瓶...
    meng_philip123阅读 5,874评论 0 41
  • 用张三毛老婆的话说,这是一个讨好上司的机会,于是,夫妻俩商量着怎么去礼。 当天早上,张三毛带着老婆早早来到超市购物...
    淑画年华阅读 627评论 6 4
  • 《何以笙箫默》我最爱的小说,没有之一。 我又一次看完这个小说,在我觉得自己快要崩溃的时候。还好,我还是愿意相信爱情...
    念情笑笑阅读 319评论 0 0