PHP随机字符串函数

我今天正在测试一个字符串操作函数(我将在其他时间发布),我想创建一个可以输入的随机字符串,因此我想出了下面的函数。我以为这是PHPrand()和chr()PHP函数的巧妙用法,所以就在这里。

function random_string($length = 50) {
    $string = '';
 
    for ($i = 0; $i < $length; ++$i) {
 
        $type = rand(1, 5);
 
        switch ($type) {
            case 1:
                // 小写字母
                $ascii_start = 65;
                $ascii_end = 90;                
                break;
            case 2:
                // 大写字母
                $ascii_start = 97;
                $ascii_end = 122;
                break;        
            case 3:
                // 空间
                $ascii_start = 32;
                $ascii_end = 32;                
                break;   
            case 4:
                // 数字
                $ascii_start = 48;
                $ascii_end = 57;                
                break;
            case 5:
                // 标点
                $ascii_start = 33;
                $ascii_end = 47;
                break;
        }
 
        $string .= chr(rand($ascii_start, $ascii_end));
    }
    return $string;
}

它通过选择要使用的字符类型(例如大写字母,数字等),然后使用该chr()函数随机选择一个字符来工作。该chr()函数将数字作为参数,并将返回与该数字相对应的ascii字符。例如,给定数字65,该chr()函数将返回字符串“ A”。它将遍历此选择过程以构建一个字符串。

这是此函数产生的输出种类的一些示例。

ye 82 C!4p $$r" lg 3 Ed-W KGrX1% 21V V"mENV YzA B 
 1% .AjU  C/7 E7 %3uplK g40-'$ i,j% E+JYh  Ox AU7I
 %q. v$ ,#H5t *d %9Xv59* *oZ3Hj-'G1- 2*7 a+I8Jy& 0
$)V, 7&g6o$3 u27 g"  p6 O* eU"LG Th 9J,&3*  zH)+*e
&5  u$/l)L0 MZ2'H 1MrymE X h3 66 4AW )WT1f  0 zQtF
- CAc2U'QU*1E5 -MfQ $ HMGJ0xg%,J0  q27r s 4oFz!74"
h Dx.h"Cq1ANF0S- S8w!z%hS  x%D8M'O(6a) 3r8H#$#./&i
a .!J (As3a!v&DXK0PIf1$B0JR Pp,KrM (/uUz22gm S% ,-
 *5j$,%0+ VSsz,a0oA7)' s9J$5/ R"iK3cvz GDQn3DC'"lc
6 xK,r2 R/1Y"y46S& s39#US   p*h1+2R8,0yr6 -HYG 'N"