PHP生成特定长度的纯字母字符串

PHP中,md5()uniqid()函数可以返回32位和13位不重复的字符串,但是这些字符串都可能包含有数字。如果需要纯字母的字符串,而且长度不定,比如8位,那么直接用这两个函数无法达到效果。

这时可以考虑从ASCII码加mt_rand()函数的角度考虑,因为A~Z的ASCII码是65~90a~z的ASCII码是97~122,所以程序可以这么写:

// 生成纯字母字符串函数
function rand_string($length = 8) {
    $randstr = "";
    for ($i = 0; $i < (int) $length; $i ++) {
        $randnum = mt_rand(0, 51);
        if ($randnum < 26) {
            $randstr .= chr($randnum + 65); // A-Z之间字符
        } else {
            $randstr .= chr($randnum + 71); // a-z之间字符
        }
    }
 
    return $randstr;
}

// 输出8位长度的纯字母字符串
echo rand_string(8);

默认长度是8位,可以根据需要传入长度。

 

1条评论

328258710 says: 回复

看看!

发表评论

电子邮件地址不会被公开。 必填项已用*标注

昵称 *