我在存储行ID号(自动递增)的表中有一个ID列,例如1、2、3。我想生成一个随机且唯一的字符串,它只能包含数字、字母、破折号(-)和下划线(_)。字符串长度为4-6,且不能重复。有没有人能教我怎么生成?谢谢。
发布于 2011-06-28 13:38:44
使用这个- base_convert(mt_rand(0x1D39D3E06400000,0x41C21CB8E0FFFFFF),10,36),但根据db检查新值。
发布于 2011-06-28 13:29:40
function random_gen($length)
{
$random= "";
srand((double)microtime()*1000000);
$char_list = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
$char_list .= "abcdefghijklmnopqrstuvwxyz";
$char_list .= "1234567890-_";
// Add the special characters to $char_list if needed
for($i = 0; $i < $length; $i++)
{
$random .= substr($char_list,(rand()%(strlen($char_list))), 1);
}
return $random;
}
$random_string = random_gen(6); //This will return a random 6 character string
上面的函数将生成唯一的字符串
发布于 2011-06-28 13:30:23
尝尝这个
function genRandomString($length) {
$characters = ’0123456789abcdefghijklmnopqrstuvwxyz-_’;
$string = ”;
for ($p = 0; $p < $length; $p++) {
$string .= $characters[mt_rand(0, strlen($characters))];
}
return $string;
}
调用所需长度的函数
https://stackoverflow.com/questions/6501936
复制相似问题