【问题标题】:generate a random unique code in php and create a table and store it in a table in Mysql在php中生成一个随机唯一代码并创建一个表并将其存储在Mysql中的一个表中
【发布时间】:2016-07-13 03:29:30
【问题描述】:

我需要帮助在 php 中生成一个随机唯一代码并创建一个表并将其存储在 Mysql 中的一个表中,然后将此随机数提供给任何想要注册的人,之后使用随机数的人注册将成功不使用随机数的人生成数字和不成功

【问题讨论】:

    标签: php


    【解决方案1】:

    这个函数应该可以解决问题

    function random_Id($length = 6) {
            $id = substr(str_shuffle("0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"), 0, $length);
    return $id;
        }
    

    【讨论】:

    • 我认为这不是一个好的解决方案。每增加一个字符,随机性就会降低,因为该函数只会使用每个字符一次。
    【解决方案2】:

    如果您使用的是 PHP 7,很容易生成随机字符串:

    $bytes = random_bytes(5); //random. Increase input for more bytes
    $code = bin2hex($bytes); // eg: 385e33f741
    

    在 PHP 7 之前,我会生成带有函数的字母数字代码

    function getRandomString($length){
        $chars = 'abcdefghijklmnopqrstuvwxyz0123456789';    
        $result = '';
        while(strlen($result)<$length):
            $result .= $chars{mt_rand(0,strlen($chars)-1)};
        endwhile;
        return $result;
    }
    

    要获得 10 个字符的随机码,您只需调用:

    $code = getRandomString(10);
    

    如果您希望在生成的代码中添加更多字符,例如大写字母和标点符号,您可以向$chars 添加更多字符

    【讨论】:

      猜你喜欢
      • 2016-10-22
      • 2021-02-15
      • 1970-01-01
      • 1970-01-01
      • 2010-09-18
      • 1970-01-01
      • 1970-01-01
      • 2014-04-09
      • 1970-01-01
      相关资源
      最近更新 更多