使用PHP

时间:2016-06-06 13:06:58

标签: php

我希望生成某种类型的ID,类似于Google为其课堂服务生成网址的方式。

例如: https://classroom.google.com/u/0/c/MTg1MKIwNTk4

我希望能够生成MTg1MKIwNTk4部分。

它不一定是加密安全的或类似的东西,它只是用于URL。

如何使用PHP(+ MySQL)完成这项工作?

感谢。

2 个答案:

答案 0 :(得分:2)

使用此代码:

$charset = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz';
$str = '';
$length = strlen($charset);
$count = 12;
while ($count--) {
    $str .= $charset[mt_rand(0, $length-1)];
}
echo $str;

如果您使用PHP7,则可以使用random_int代替mt_rand来获得更好的随机数。 (由@zaph在评论中提出)。

当然,如果你想拥有更容易手工复制的随机字符串(例如,如果你打印你的网址),那么你可以省略一些可能含糊不清的字符(例如' l'或' 0') - (再次由@zaph在评论中提出)

答案 1 :(得分:0)

md5()与.htaccess(Apache)/web.config(IIS)结合使用以获取它。

您将获得一个字母数字为32个字符长的字符串。使用substr()

剪切它

示例:

md5('helloworld')生成 fc5e038d38a57032085441e7fe7010b0

substr(md5('helloworld'),0,10)生成 fc5e038d38