刷新时生成10位唯一编号

时间:2017-04-16 21:45:05

标签: php

我是PHP新手,想为我的SKU编号生成唯一的10位数字。我尝试使用带IP地址的日期,并第一次获得了唯一的值。但刷新或保存产品数据后,我仍然拥有相同的SKU编号。任何帮助?我的代码是:

    <?php
     if(!empty($_POST)) {
      .....my code......   
      }

      else{
       $stamp = date("Ymdhis");
       $ip = $_SERVER['REMOTE_ADDR'];
       $sku = "$stamp-$ip";
       $sku = str_replace(".", "", "$sku");
       $sku = str_replace("-", "", "$sku");
       $sku = str_replace(":", "", "$sku");
       $sku = substr($sku, 0,10);
       }
       ?>

4 个答案:

答案 0 :(得分:2)

为什么不使用日期创建一个10位数的唯一号码?年(4)+月前导零(2)+日前导零(2)+秒前导零(2)= 10位

<?php
echo date("Ymds");
?>

答案 1 :(得分:1)

你可以使用这个$sku = rand(1000000000,9999999999)这个php函数会生成一个随机的no。每次

答案 2 :(得分:1)

Yall过度复杂。

使用像random_compat这样的现有库(此库可以生成强随机数和加密安全随机数。)。 https://github.com/ircmaxell/random_compat/blob/master/lib/random.php

示例(您的情况):

import glob
from re import sub, findall
from os.path import basename
file_list = glob.glob('/fulldirectory/*.txt') # get the list of file names that ends in .txt
f = sorted(file_list, key = lambda x: int(findall('\d+\.txt$',basename(x))[0]))

for file in f:
    print(sub('\.txt$', '', file))

    # do your stuff....

答案 3 :(得分:0)

这是我写的一个快速随机字符串生成器:

function generateRandomString($alpha = true, $nums = true, $usetime = false, $string = '', $length = 120) {
$alpha = ($alpha == true) ? 'abcdefghijklmnopqrstuvwxyz' : '';
$nums = ($nums == true) ? '1234567890' : '';

if ($alpha == true || $nums == true || !empty($string)) {
    if ($alpha == true) {
        $alpha = $alpha;
        $alpha .= strtoupper($alpha);
    } 
}
$randomstring = '';
$totallength = $length;
    for ($na = 0; $na < $totallength; $na++) {
            $var = (bool)rand(0,1);
            if ($var == 1 && $alpha == true) {
                $randomstring .= $alpha[(rand() % mb_strlen($alpha))];
            } else {
                $randomstring .= $nums[(rand() % mb_strlen($nums))];
            }
    }
if ($usetime == true) {
    $randomstring = $randomstring.time();
}
return($randomstring);
} // end generateRandomString

您可以根据需要使用它:

$SKU = generateRandomString(false, true, false, '', 10);