echo random_string("sha1",10);
/**
* rand 一个随机数
*
* @typestring
* alpha: 含有大小写字母
* alnum: 含有大小写字母以及数字
* numeric: 数字字符串。
* nozero: 不含零的数字字符串。
* 用 MD5 和 uniqid()加密的字符串。注意:第二个长度参数在这种类型无效。均返回一个32位长度的字符串
* sha1: 成的随机数加密值
* @returnstring
*/
function random_string($type = 'alnum', $len = 8)
{
switch($type)
{
case 'basic': return mt_rand();
break;
case 'alnum':
case 'numeric':
case 'nozero':
case 'alpha':
switch ($type)
{
case 'alpha':$pool = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';
break;
case 'alnum':$pool = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';
break;
case 'numeric':$pool = '0123456789';
break;
case 'nozero':$pool = '123456789';
break;
}
$str = '';
for ($i=0; $i < $len; $i++)
{
$str .= substr($pool, mt_rand(0, strlen($pool) -1), 1);
}
return $str;
break;
case 'unique':
case 'md5':
return md5(uniqid(mt_rand()));
break;
case 'encrypt':
case 'sha1':
return sha1(uniqid(mt_rand(), TRUE));
break;
}
}
另外一种办法:
function make_rand_str($length = 8 ){
$chars = array('a', 'b', 'c', 'd', 'e', 'f', 'g', 'h',
'i', 'j', 'k', 'l','m','n', 'o', 'p', 'q', 'r', 's',
't', 'u', 'v', 'w', 'x', 'y','z', 'A', 'B', 'C', 'D',
'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L','M', 'N', 'O',
'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y','Z',
'0', '1', '2', '3', '4', '5', '6', '7', '8', '9', '!',
'@','#', '$', '%', '^', '&', '*', '(', ')', '-', '_',
'[', ']', '{', '}', '', '~', '`', '+', '=', ',',
'.', ';', ':', '/', '?', '|');
$keys = array_rand($chars, $length);
$rand_str = '' ;
for($i = 0; $i < $length; $i++){
$rand_str .= $chars[$keys[$i]];
}
return $rand_str ;
}
echo make_rand_str(4);