PHP如何生成一个唯一的订单编号?

下面是一个生成唯一订单的方法,这个方法是在某二开框架中截取的,自认为比较有效好用,所以保存下来,也在多次使用.

    //生成计划单号
        public function createNO($table, $prefix)
        {
            $billno = date('YmdHis') . $this->random(6, true);

            while (1) {
                $count = count($this->getSgTable($table)->savingsplanwhere(array('plan_id'=>$billno)));

                if ($count <= 0) {
                    break;
                }


                $billno = date('YmdHis') . $this->random(6, true);
            }

            return $prefix . $billno;
        }
        //生成任意N位数
        public function random($length, $numeric = FALSE) {
            $seed = base_convert(md5(microtime() . $_SERVER['DOCUMENT_ROOT']), 16, $numeric ? 10 : 35);
            $seed = $numeric ? (str_replace('0', '', $seed) . '012340567890') : ($seed . 'zZ' . strtoupper($seed));
            if ($numeric) {
                $hash = '';
            } else {
                $hash = chr(rand(1, 26) + rand(0, 1) * 32 + 64);
                $length--;
            }
            $max = strlen($seed) - 1;
            for ($i = 0; $i < $length; $i++) {
                $hash .= $seed{mt_rand(0, $max)};
            }
            return $hash;
        }

因为方法是摘自某二开框架,如果有侵权,请联系我删除,我只是为了自己做个笔记和给大家提供一个方便,并非商用.

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值