php web下订单编号的生成(隐藏订单上面的统计信息)

因为项目需求,需要生成订单编号的东西,而订单编号上面的统计信息有必要隐藏起来,而考虑到项目中很多地方也需要生成唯一随机字串,使用时间一秒钟最多应用毫秒数来生成1000个唯一编号,而使用过程中,订单编号可能多,使我有了下面的想法:

1、所有串都是26个字母+10个数字共36个不同字符来组成;

2、日期可以这么考虑,十年以上的数据存留已经够用了,不知道十年后公司还存不存在,所以36个来代表年份够用了,直接取余,月、日、小时也足够用36个字符来标识,同样取余;

3、分钟有60分,超过36,用两位来标识:十位、各位,秒同样!这样一共占据了8位;

4、剩下6位用累加统计来表示,使用共享内存进行累加;

上面4条就能保证在一分钟内,能生成99万个不同的字串,并且36位字串的组成可以随机(后面代码将看到效果);如果需求的字串长于14位,则在末尾加上利用随机数读取的字符串,这样更能保证获得的字串唯一;

直接上代码

<?php
class UniqueTools
{
    private static $key = 39527; // the key of shm
    private static $memsize = 8; // size of shm by byte
    private static $perm = 0666; // promission
    private static $offset = 0; // offset of shm,0 is the first a
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值