简体   繁体   English

PHP 独特的随机字符串生成器

[英]PHP Unique random string generator

How to make a random string unique to the string in the column below?如何使随机字符串对下面的列中的字符串唯一?

在此处输入图像描述

<?php
$n=10;
function getName($n) {
    $characters = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';
    $randomString = '';

    for ($i = 0; $i < $n; $i++) {
        $index = rand(0, strlen($characters) - 1);
        $randomString .= $characters[$index];
    }

    return $randomString;
}

echo getName($n);
?>
<?php
    $n = 10;
    function getName($n) {
        $characters = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';
        $randomString = '';
        for ($i = 0; $i < $n; $i++) {
            $index = rand(0, strlen($characters) - 1);
            $randomString .= $characters[$index];
        }
        return $randomString;
    }
    function getUniqueString($length, $dbConnection){
        $string = getName($length);
        $count  = $dbConnection->query("SELECT * FROM TABLE_NAME WHERE string='$string')")->num_rows;
        while($count != 0){
            $string = getName($length);
            $count  = $dbConnection->query("SELECT * FROM TABLE_NAME WHERE string='$string')")->num_rows;
        }
        return $string;
    }

    echo getUniqueString($n, $dbConnection);
?>

You can use openssl_random_pseudo_bytes() or random_bytes() PHP fonction to generate random strings.您可以使用 openssl_random_pseudo_bytes() 或 random_bytes() PHP 函数生成随机字符串。

You can also rely on MySQL to generate uniq IDs:您还可以依靠 MySQL 生成 uniq ID:

INSERT INTO mytable (alphaID) VALUES (REPLACE( UUID(), '-', '' )); 

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM