为输入字符串/ url创建唯一的字母数字字符串?

时间:2009-10-20 20:35:23

标签: php

我想为输入字符串创建一个小于或等于10个字符的唯一字符串,该字符串可能是一个网址

http://stackoverflow.com/questions/ask

或字母数字字符串

programming124

但结果对于每个输入都应该是唯一的...是你在php中用于项目的任何函数或类...谢谢......

2 个答案:

答案 0 :(得分:2)

如果需要唯一且随机的字符串,可以使用以下函数创建随机字符串:

function randString($length) {
    $charset = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz';
    $str = '';
    while ($length-- > 0) {
        $str .= $charset[rand() % 62];
    }
    return $str;
}

生成新字符串后,如果该字符串已存在,请查找数据库。如果是这样,请重复该步骤,直到生成唯一字符串。然后将新字符串存储在数据库中:

do {
    $randString = randString(10);
    // look up your database if $randString already exists and store the result in $exists
} while ($exists);
// store new random string in database

答案 1 :(得分:0)

php中最简单的函数是uniqid。你提到的时间要长一点,并且不能很好地适应负载平衡,但是如果你做的事情非常简单,它应该可以正常工作。