为任何一张优惠券产生一个唯一的no,无需使用优惠码6到8位

时间:2014-01-04 16:33:51

标签: php

for($i=0,$ii=1;$i<$_POST['no_of_coupon']; $ii++) {
    $unique_code=uniqid();
    $category_unique_code = substr($unique_code,rand(0,strlen($unique_code) - 6),6);
    $i++;
    echo $category_unique_code;
}

$_POST['no_of_coupon']是否定的。例如。如果用户想要1万卢比的优惠券代码或更多,即$_POST['no_of_coupon'],所有代码都插入到数据库中,代码是唯一的,但我已经尝试了上述方法,但它不是唯一的,那么我尝试了另一种方法

function gen_random($length=32)
{
    $final_rand='';
    for($i=0;$i< $length;$i++)
    {
        $final_rand .= rand(0,9);
    }
    return $final_rand;
}
for($i=0,$ii=1;$i<$_POST['no_of_coupon']; $ii++) {
            $unique_code=gen_random(6);
            $category_unique_code = substr($unique_code,rand(0,strlen($unique_code) - 6),6);
            $i++;
            echo $category_unique_code;
}

这种方法也没有生成独特的优惠券代码,我只需要6到8位数的唯一没有所以有人有任何想法生成独特的没有,请告诉我

2 个答案:

答案 0 :(得分:0)

此代码将生成一个8位数的唯一优惠券代码:

function getUniqueCouponCode ()
{
    $filename = 'number.txt';
    if (file_exists($filename)) {
        $actual_number = file_get_contents($filename);
    } else {
        $actual_number = 1;
    }
    file_put_contents($filename, $actual_number + 1);
    return str_pad($actual_number, 8, '0', STR_PAD_LEFT);
}

答案 1 :(得分:-2)

Try this to create a 6 or 8 digit unique no:
    <?php 
        $date=date('y-m-dh:i:s'); 
        echo substr(md5($date),0,6);
    ?>