生成任意长度字符串的类(自由定制)

字体大小: 中小 标准 ->行高大小: 标准
<?
02   
03 /*
04  * 生成随机字符串的类,默认只包含数字、大小写字母
05  * @author Jerry <maolyc@gmail.com>
06  */
07   
08 class randomString {
09     /*
10      * 生成的字符串包含的字符设置
11      */
12   
13     const NUMERIC_ONLY = 1; //只含有数字
14     const LETTER_ONLY = 2; //只含有字母
15     const MIXED = 3; //混合数字和字母
16   
17     /*
18      * 用户传入变量,分别为字符串长度;包含的字母;是否包含大写字母
19      */
20   
21     protected $length, $type, $upper;
22   
23     /*
24      * 参数初始化
25      * @param int,$length 字符串长度
26      * @param const,$type 生成字符串的类型
27      * @param boolean,$upper 是否含有大写字母
28      */
29   
30     public function __construct($length = 16, $type = self::MIXED, $upper = true) {
31         $this->length = $length;
32         $this->type = $type;
33         $this->upper = $upper;
34     }
35   
36     /*
37      * 对象被转化为字符串时调用 
38      * @return string
39      */
40   
41     public function __toString() {
42         return $this->pickUpChars();
43     }
44   
45     /*
46      * 生成随机字符串
47      * @global $type
48      * @return string,$string
49      */
50   
51     public function pickUpChars() {
52         switch ($this->type) {
53             case self::NUMERIC_ONLY:
54                 $raw = '0123456789';
55                 break;
56             case self::LETTER_ONLY:
57                 $raw = 'qwertyuioplkjhgfdsazxcvbnm' .
58                         'QWERTYUIOPLKJHGFDSAZXCVBNM';
59                 break;
60   
61             default:
62                 $raw = 'qwertyuioplkjhgfdsazxcvbnm' .
63                         'QWERTYUIOPLKJHGFDSAZXCVBNM' .
64                         '0123456789';
65                 break;
66         }
67         $string = '';
68         for ($index = 0; $index < $this->length; $index++)
69             $string .= substr($raw, mt_rand(0, strlen($raw) - 1), 1);
70         if (!$this->upper)
71             $string = strtolower($string);
72         return $string;
73     }
74   
75 }
76   
77 //echo new randomString(170, randomString::MIXED, TRUE).'<br/>';

此文章由 www.phpgz.com 收集整理 ,地址为: http://www.phpgz.com/htmls/29883.html

大屏阅读,大屏评论.