加载时生成序列号的PHP代码

加载时生成序列号的PHP代码,php,Php,需要一个PHP代码,在该代码中,每当加载页面(其中有一个表单)时,它都会生成一个序列号,也可以为表单编号id生成序列号。您可以使用以下代码生成序列号: $tokens = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789'; $serial = ''; for ($i = 0; $i < 4; $i++) { for ($j = 0; $j < 5; $j++) { $serial .= $tokens[rand(0, 35)];

需要一个PHP代码,在该代码中,每当加载页面(其中有一个表单)时,它都会生成一个序列号,也可以为表单编号id生成序列号。您可以使用以下代码生成序列号:

$tokens = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789';

$serial = '';

for ($i = 0; $i < 4; $i++) {
    for ($j = 0; $j < 5; $j++) {
        $serial .= $tokens[rand(0, 35)];
    }

    if ($i < 3) {
        $serial .= '-';
    }
}

echo $serial;
$tokens='abcdefghijklmnopqrstuvxyz012456789';
$serial='';
对于($i=0;$i<4;$i++){
对于($j=0;$j<5;$j++){
$serial.=$tokens[rand(0,35)];
}
如果($i<3){
$serial.='-';
}
}
echo$serial;

//它将生成类似3GHT-4K5D-35D4-JK53的序列号,对于相当多的唯一值,请尝试使用UUID(通用唯一标识符)。在PHP中,最好的(也是最跨平台的)方法是使用。我不完全清楚您关于具体标识表单的意思,但UUID对于大多数类型的数据都很有效

要检查唯一性,必须将它们存储在数据库表中,每次生成新id时,都要检查它是否已经存在

试着这样做:

<?php
$uni_id = rand(10,99);

$first = $uni_id;
$chars_to_do = 5 - strlen($uni_id);
for ($i = 1; $i <= $chars_to_do; $i++) { $first .= chr(rand(48,57)); }

echo $first;

$chars_to_do = 5 - strlen($uni_id);
for ($i = 1; $i <= $chars_to_do; $i++) 
{
    if ($i == "2") { $second[] = $uni_id; }
    $second[] = chr(rand(48,57));
}

echo "-" . implode("", $second);

$chars_to_do = 5 - strlen($uni_id);
for ($i = 1; $i <= $chars_to_do; $i++) 
{
    if ($i == "3") { $third[] = $uni_id; }
    $third[] = chr(rand(48,57));
}

echo "-" . implode("", $third);

$chars_to_do = 5 - strlen($uni_id);
for ($i = 1; $i <= $chars_to_do; $i++) 
{
    $fourth[] = chr(rand(48,57));
}
$fourth[] = $uni_id;

echo "-" . implode("", $fourth);
?>

生成不是问题,如何确保唯一性?即使我检查数据库,仍然有可能生成重复记录,或者没有

但我想如果我使用我的代码,那么就没有机会


谢谢。

您的尝试在哪里?您可以使用rand()函数生成序列号number@AmitGupta-不,你不能
rand()
将生成一个随机数,而不是序列号。No OP不清楚我们序列号是否是串联的或随机的。您可能想查看此帖子:它不会连续生成数字。向下投票人请评论为什么向下投票?这会随机生成数字,而不是连续生成数字。