今天在技术群里看到有同学问快递单号生成工具,不知道他要生成快递单号做什么,只是看他说网上搜索了好多快递单号生成工具,他测试了一堆都不管用。感觉他的需求很迫切,于是我在网上搜索了下,我也没有用代码找到生成快递单号的方法。但是仔细一想,这个实现方法也很简单啊,会技术的我们为啥还需要去找各种工具呢?虽然需要的受众很少,但是对于初入技术圈的新手来说,遇到这个需求也许不知道怎么去处理。本着助人助己的精神,在 联系下rand()函数的使用整理了快递单号生成的代码。 代码很是粗糙仅供交流学习使用,请不要非法使用,一切后果均与本人无关。
<?php
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].'<br>';
// echo $firstnum[mt_rand (0,count($firstnum)-1)] .'<br>';
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 '<table style="border:1px;" >';
echo ' <th>'.$kuaidi_name.'</th>';
foreach ($deliveryArrnum as $v){
echo'<tr><td>'. $v.'</td></tr>';
}
echo '</table>';
}
// 手动调用 inputnum()方法,传递数量及快递类型
echo inputnum(10000,'youzheng');
以上仅是个人根据自己搜索到的快递单后进行整理的,仅供参考.....