php 快递单号生成代码

202 阅读1分钟

今天在技术群里看到有同学问快递单号生成工具,不知道他要生成快递单号做什么,只是看他说网上搜索了好多快递单号生成工具,他测试了一堆都不管用。感觉他的需求很迫切,于是我在网上搜索了下,我也没有用代码找到生成快递单号的方法。但是仔细一想,这个实现方法也很简单啊,会技术的我们为啥还需要去找各种工具呢?虽然需要的受众很少,但是对于初入技术圈的新手来说,遇到这个需求也许不知道怎么去处理。本着助人助己的精神,在 联系下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');

以上仅是个人根据自己搜索到的快递单后进行整理的,仅供参考.....