[英]Generate 10 digit unique number on refresh
I am new to PHP and want to generate unique 10 digits number for my SKU Number. 我是PHP新手,想为我的SKU编号生成唯一的10位数字。 I tried using a date with IP address and got a unique value first time. 我尝试使用带有IP地址的日期,并且第一次获得了唯一值。 But after a refresh or saving product data I still have that same SKU number. 但是在刷新或保存产品数据后,我仍然具有相同的SKU号。 Any Help?? 有帮助吗? My code is: 我的代码是:
<?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);
}
?>
Why not use the date to create a 10 digit unique number? 为什么不使用日期来创建10位唯一数字? year (4) + month with leading zero (2) + day with leading zero (2) + seconds with leading zero (2) = 10 digits 年(4)+以零开头(2)的月份+以零开头(2)的日期+以零开头(2)的秒= 10位数
<?php
echo date("Ymds");
?>
you could use this $sku = rand(1000000000,9999999999)
this php function will generate a random no. 您可以使用$sku = rand(1000000000,9999999999)
这个php函数将生成一个随机数。 every time 每次
Yall overcomplicating. Yall太复杂了。
Use an existing library like random_compat (This library can generate strong random numbers and cryptographically secure random numbers.). 使用现有的库,例如random_compat(此库可以生成强随机数和加密安全的随机数。)。 https://github.com/ircmaxell/random_compat/blob/master/lib/random.php https://github.com/ircmaxell/random_compat/blob/master/lib/random.php
Example (your case): 示例(您的情况):
$random = new \PHP\Random(true);
echo $random->token(10, '0123456789');
Here's a quick random-string-generator I wrote: 这是我写的一个快速的随机字符串生成器:
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
You can use it like this for what you need: 您可以按照需要使用它:
$SKU = generateRandomString(false, true, false, '', 10);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.