创建随机字符唯一URL

时间:2015-06-04 16:36:46

标签: php random unique

如何为数据库中记录的页面的URL生成随机12个字符的字符,就像youtube如何使用11个字符https://www.youtube.com/watch?v=kDjirnJcanw

我希望它对于数据库中的每个条目都是唯一的,包括大小写字母,数字和可能(如果安全性不差)甚至是特殊字符。

2 个答案:

答案 0 :(得分:2)

功能:

function generateRandomString($length = 12) {
    $characters = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';
    $charactersLength = strlen($characters);
    $randomString = '';
    for ($i = 0; $i < $length; $i++) {
        $randomString .= $characters[rand(0, $charactersLength - 1)];
    }
    return $randomString;
}

然后叫它:

$randomString = generateRandomString();

Slightly adapted from Stephen Watkins' solution here

答案 1 :(得分:1)

这是一种非常天真的方法,但你可以定义一个允许的字符数组,然后随机选择N:

function randomString($length) {
   $string = '';
   $characters = "123456789abcdefghijklmnopqrstuvwxyzABCDEFHJKLMNPRTVWXYZ";
   $randMax = strlen($characters)-1;

   for ($i = 0; $i < $length; ++$i) {
       $string .= $characters[mt_rand(0, randMax)];
   }

   return $string;
}