我想为输入字符串创建一个小于或等于10个字符的唯一字符串,该字符串可能是一个网址
http://stackoverflow.com/questions/ask
或字母数字字符串
programming124
但结果对于每个输入都应该是唯一的...是你在php中用于项目的任何函数或类...谢谢......
答案 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。你提到的时间要长一点,并且不能很好地适应负载平衡,但是如果你做的事情非常简单,它应该可以正常工作。