今天在技术群里看到有同学问快递单号生成工具,不知道他要生成快递单号做什么,只是看他说网上搜索了好多快递单号生成工具,他测试了一堆都不管用。感觉他的需求很迫切,于是我在网上搜索了下,也没有找到生成快递单号的方法,随意测试了几个下载站提供的工具也都不能用。工具没有可用的,那就想一想怎么用代码实现吧,这个实现方法也比较简单啊,会技术的我们需要去找各种工具吗?虽然需要的受众很少,但是对于初入技术圈的新手来说,遇到这个需求也许不知道怎么去处理。本着助人助己的精神,在 练习下rand()函数的使用整理了快递单号生成的代码。 代码很是粗糙仅供交流学习使用,请不要非法使用,一切后果均与本人无关。

function make_order_sn( $name='YT')
{
// 23569
if ($name == 'YT') { //圆通
$firstnum = [2,3,5,6,9] ;
return $name. $firstnum[mt_rand (0,count ($firstnum)-1)] . substr(mt_rand(1000000, 999999999), 0, 6) . substr(mt_rand(1000000, 999999999), 0, 6);
}
if ($name == 'ST') { // 申通
// 订单总长度是15位
$firstnum = [773,776,752,753,777] ;
return $firstnum[mt_rand (0,count ($firstnum)-1)] . substr(mt_rand(1000000, 999999999), 0, 4) . substr(mt_rand(1000000, 999999999), 0, 7);
}
if ($name == 'JT') { //极兔
//订单总长度是15位
$firstnum = ['JT302','JT516','JT295','JT000','JT000'] ;
// echo $firstnum[0].'
';
// echo $firstnum[mt_rand (0,count($firstnum)-1)] .'
';
return $firstnum[mt_rand (0,count ($firstnum)-1)] . substr(mt_rand(1000000, 999999999), 0, 4) . substr(mt_rand(1000000, 999999999), 0, 6);
}
if ($name == 'zhongtong') { //中通
//订单总长度是14位
$firstnum = [758,731,782,758,786] ;
return $firstnum[mt_rand (0,count ($firstnum)-1)] . substr(mt_rand(1000000, 999999999), 0, 4) . substr(mt_rand(1000000, 999999999), 0, 7);
}
if ($name == 'youzheng') { //邮政
//订单总长度是13位
$firstnum = [988,985,979,] ;
return $firstnum[mt_rand (0,count ($firstnum)-1)] . substr(mt_rand(1000000, 999999999), 0, 4) . substr(mt_rand(1000000, 999999999), 0, 6);
}
// 可以自己在添加其他的快递类型规则
return '请传入快递类型';
}

// 循环方法重复获取快递单号
// 定义一个空数组接受快递单号
$deliveryArr = [];
function inputnum ($num,$kuaidi_name){
for ($i = 0; $i < $num; $i++) {
$deliveryArr.= make_order_sn($kuaidi_name).”,”;
}
$deliveryArrnum = explode(‘,’,$deliveryArr);
// die;

echo ‘

‘; echo ‘

‘.$kuaidi_name.’

‘;
foreach ($deliveryArrnum as $v){
echo’

‘. $v.’

‘;
}
echo ‘

‘;
}
// 手动调用 inputnum()方法,传递数量及快递类型
echo inputnum(10000,’youzheng’);