我想知道如何在php和sql中为每个用户生成一个唯一的随机代码。此代码将用于用户网页的url。例如,网站https://www.blablacar.fr/ 使用urlhttps://www.blablacar.fr/user/show/random-unique-code-for-each-user 访问该用户的配置文件。我想我应该用 uniqid php函数并将其存储在数据库中。但我不知道有没有更好的办法。非常感谢你的帮助。
uniqid
thigvfpy1#
可以使用base\u convert()函数生成唯一的id
base_convert ( string $number , int $frombase , int $tobase )
请参见此处的示例代码:https://txeditor.com/jh6o8d1ldsd
1sbrub3j2#
可以使用当前时间生成唯一的字符串。
$unique = sha1(time);
h22fl7wq3#
可以使用 str_random(length) 功能。您可以生成随机代码并将当前时间戳附加到该字符串。我认为这是独一无二的。
str_random(length)
plupiseo4#
https://github.com/ramsey/uuid,ramsey/uuid是一个php5.4+库,用于生成和使用rfc4122版本1、3、4和5通用唯一标识符(uuid)。dafult使用这个包在laravel框架中生成uniqueid。如果你用的是拉威尔 uniqid() 函数将为您提供所需的唯一id,
uniqid()
xqkwcwgp5#
你可以利用uuid。正如@shobi p laravel所提到的,它使用包 ramsey/uuid PHP5.4+库,用于生成RFC4122版本1、3、4和5通用唯一标识符(uuid)。所以您可以导入包并使用它的函数来生成uuid
ramsey/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"; } }
附言:taylorotwell发布了一个关于是否将uuid函数包含到str类的投票。
zbq4xfa06#
自定义:
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);
或使用http://php.net/manual/en/function.uniqid.php
6条答案
按热度按时间thigvfpy1#
可以使用base\u convert()函数生成唯一的id
请参见此处的示例代码:https://txeditor.com/jh6o8d1ldsd
1sbrub3j2#
可以使用当前时间生成唯一的字符串。
h22fl7wq3#
可以使用
str_random(length)
功能。您可以生成随机代码并将当前时间戳附加到该字符串。我认为这是独一无二的。plupiseo4#
https://github.com/ramsey/uuid,
ramsey/uuid是一个php5.4+库,用于生成和使用rfc4122版本1、3、4和5通用唯一标识符(uuid)。
dafult使用这个包在laravel框架中生成uniqueid。如果你用的是拉威尔
uniqid()
函数将为您提供所需的唯一id,xqkwcwgp5#
你可以利用uuid。正如@shobi p laravel所提到的,它使用包
ramsey/uuid
PHP5.4+库,用于生成RFC4122版本1、3、4和5通用唯一标识符(uuid)。所以您可以导入包并使用它的函数来生成uuid
附言:
taylorotwell发布了一个关于是否将uuid函数包含到str类的投票。
zbq4xfa06#
自定义:
或使用http://php.net/manual/en/function.uniqid.php