1000字范文,内容丰富有趣,学习的好帮手!
1000字范文 > php生成数字订单号 php生成订单号函数

php生成数字订单号 php生成订单号函数

时间:2020-09-19 10:01:15

相关推荐

php生成数字订单号 php生成订单号函数

收藏php生成订单号函数,方便日后使用。订单号生成很多种方式和方法,有按标志性规则的,有按业务划分的,有按订统一单生成器的,等等等等。但在众多方式中,离不开:安全性,唯一性。生成个:简短,支持高并发,安全唯一的,又包含业务规则的订单号,实在不容易。

一、摘录自:ShopNC 生成订单编号/**

*ShopNC生成订单编号

*@returnstring

*/

functionsnOrder(){

$recharge_sn=date('Ymd').substr(implode(NULL,array_map('ord',str_split(substr(uniqid(),7,13),1))),-8,8);

return$recharge_sn;

}

样例:

string '011149985556' (length=16)

string '011197489748' (length=16)

解释://获取一个带前缀、基于当前时间微秒数的唯一ID。

var_dump(uniqid());

//string'5a5777a2f2eb8'(length=13)

//获取变化频繁的后6位

var_dump(substr(uniqid(),7,13));

//string'2f2eb8'(length=6)

//将字符串转换为数组,每段长度为1

var_dump(str_split(substr(uniqid(),7,13),1));

/*array(size=6)

0=>string'2'(length=1)

1=>string'f'(length=1)

2=>string'2'(length=1)

3=>string'e'(length=1)

4=>string'b'(length=1)

5=>string'8'(length=1)*/

//使用array_map对数组每个值,都掉用ord()函数,返回相应字符的ASCII码值

var_dump(array_map('ord',str_split(substr(uniqid(),7,13),1)));

/*array(size=6)

0=>int50

1=>int102

2=>int51

3=>int50

4=>int97

5=>int48*/

//传入null将数组数字在拼接成为一个数字字符串

var_dump(implode(NULL,array_map('ord',str_split(substr(uniqid(),7,13),1))));

//string'5010251509748'(length=13)

//由于长度很难统一,从倒数第八位开始截取8位数

var_dump(substr(implode(NULL,array_map('ord',str_split(substr(uniqid(),7,13),1))),-8,8));

//string'51509748'(length=8)

二、摘录自:ECSHOP 得到新订单号/**

*ECSHOP得到新订单号

*@returnstring

*/

functionget_order_sn(){

//选择一个随机的方案

mt_srand((double)microtime()*1000000);

returndate('Ymd').str_pad(mt_rand(1,99999),5,'0',STR_PAD_LEFT);

}

样例:

string '011181845' (length=13)

string '011120993' (length=13)

解释://mt_srand()播种MersenneTwister随机数生成器

//自PHP4.2.0起,不再需要用srand()或mt_srand()函数给随机数发生器播种,现已自动完成

mt_srand((double)microtime()*1000000);

//生成1-99999的随机数

var_dump(mt_rand(1,99999));

//string'5097'(length=4)

//不足5位的随机数,就在前面补0。STR_PAD_LEFT在左端填充

var_dump(str_pad(mt_rand(1,99999),5,'0',STR_PAD_LEFT));

//string'05097'(length=5)

如果日后开发过程中发现新的,再摘录接着补充进去。

原创文章,转载请注明出处:/article/57.html

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。