【问题标题】:Creating random character unique URLS [closed]创建随机字符唯一 URL [关闭]
【发布时间】:2015-06-04 16:36:45
【问题描述】:

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

我希望它对于数据库中的每个条目都是唯一的,并且由大小写字母、数字和可能(如果不利于安全的话)甚至是特殊字符组成。

【问题讨论】:

  • 你试过了吗?如果是这样,请将其包含在您的问题中

标签: php random unique


【解决方案1】:

功能:

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

【讨论】:

    【解决方案2】:

    这是一种非常幼稚的方法,但您可以定义一个允许的字符数组,然后随机选择 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;
    }
    

    【讨论】:

      猜你喜欢
      • 2014-10-20
      • 2011-04-01
      • 1970-01-01
      • 1970-01-01
      • 2011-12-15
      • 2010-11-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多