Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/66.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 为每个用户生成随机唯一代码_Php_Mysql_Laravel - Fatal编程技术网

Php 为每个用户生成随机唯一代码

Php 为每个用户生成随机唯一代码,php,mysql,laravel,Php,Mysql,Laravel,我想知道如何在PHP和SQL中为每个用户生成唯一的随机代码。此代码将用于用户网页的url 例如,网站使用urlhttps://www.blablacar.fr/user/show/random-unique-code-for-each-user 访问该用户的配置文件 我想我应该使用uniqidphp函数并将其存储在数据库中。但我不知道有没有更好的办法 非常感谢您的帮助。可以使用str\u Random(length)函数生成随机代码。您可以生成随机代码并将当前时间戳附加到该字符串。我认为这是唯一

我想知道如何在PHP和SQL中为每个用户生成唯一的随机代码。此代码将用于用户网页的url

例如,网站使用urlhttps://www.blablacar.fr/user/show/random-unique-code-for-each-user 访问该用户的配置文件

我想我应该使用
uniqid
php函数并将其存储在数据库中。但我不知道有没有更好的办法


非常感谢您的帮助。

可以使用
str\u Random(length)
函数生成随机代码。您可以生成随机代码并将当前时间戳附加到该字符串。我认为这是唯一的。

您可以使用当前时间生成唯一的字符串

$unique = sha1(time);
,

ramsey/uuid是一个PHP5.4+库,用于生成和使用RFC 4122版本1、3、4和5通用唯一标识符(UUID)

dafult使用这个包在laravel框架中生成uniqueid。如果您使用的是laravel
uniqid()
函数将为您提供所需的唯一id,

自定义:

  function generateRandomStr($length = 8) {
        $UpperStr = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
        $LowerStr = "abcdefghijklmnopqrstuvwxyz";
        $symbols = "0123456789";
        $characters = $symbols.$LowerStr.$UpperStrl;
        $charactersLength = strlen($characters);
        $randomStr = null;
        for ($i = 0; $i < $length; $i++) {
            $randomStr .= $characters[rand(0, $charactersLength - 1)];
        }
        return $randomStr;
    }

    echo generateRandomStr(8).generateRandomStr(8);
function generateRandomStr($length=8){
$UpperStr=“abcdefghijklmnopqrstuvxyz”;
$LowerStr=“abcdefghijklmnopqrstuvxyz”;
$symbols=“0123456789”;
$characters=$symbols.$LowerStr.$UpperStrl;
$charactersLength=strlen($characters);
$randomStr=null;
对于($i=0;$i<$length;$i++){
$randomStr.=$characters[rand(0,$charactersLength-1)];
}
返回$str;
}
echo GeneratorAdomStr(8),GeneratorAdomStr(8);
或者使用你可以利用的。如Laravel所述,使用该软件包

PHP5.4+库,用于生成RFC4122版本1、3、4和5通用唯一标识符(UUID)

因此,您可以导入包并使用其函数生成UUID

use Ramsey\Uuid\Uuid;
use Ramsey\Uuid\Exception\UnsatisfiedDependencyException;

public function yourMethod()
{
    try {
        // Generate a version 1 (time-based) UUID object
        $uuid1 = Uuid::uuid1();
        echo $uuid1->toString() . "\n"; // i.e. e4eaaaf2-d142-11e1-b3e4-080027620cdd
    } catch (UnsatisfiedDependencyException $e) {
        echo 'Caught exception: ' . $e->getMessage() . "\n";
    }
}
附言:

Taylor Otwell发布了关于是否将UUID函数包含到Str类中的问题。

您可以使用该函数生成唯一id

base_convert ( string $number , int $frombase , int $tobase )

请参见此处的示例代码:

可能重复的维护表,增量为0000001,在创建获取最后一个id时,添加一个(+1),并在上面的表中插入新值,并使用该id创建用户。100%唯一性这是一个包,您可以解决问题,而无需制作另一个唯一id