php 生成任意长度字符串的类(自由定制)
生成任意长度字符串的类(自由定制) [代码片段(76行)]
<? /* * 生成随机字符串的类,默认只包含数字、大小写字母 */ class randomString { /* * 生成的字符串包含的字符设置 */ const NUMERIC_ONLY = 1; //只含有数字 const LETTER_ONLY = 2; //只含有字母 const MIXED = 3; //混合数字和字母 /* * 用户传入变量,分别为字符串长度;包含的字母;是否包含大写字母 */ protected $length, $type, $upper; /* * 参数初始化 * @param int,$length 字符串长度 * @param const,$type 生成字符串的类型 * @param boolean,$upper 是否含有大写字母 */ public function __construct($length = 16, $type = self::MIXED, $upper = true) { $this->length = $length; $this->type = $type; $this->upper = $upper; } /* * 对象被转化为字符串时调用 * @return string */ public function __toString() { return $this->pickUpChars(); } /* * 生成随机字符串 * @global $type * @return string,$string */ public function pickUpChars() { switch ($this->type) { case self::NUMERIC_ONLY: $raw = '0123456789'; break; case self::LETTER_ONLY: $raw = 'qwertyuioplkjhgfdsazxcvbnm' . 'QWERTYUIOPLKJHGFDSAZXCVBNM'; break; default: $raw = 'qwertyuioplkjhgfdsazxcvbnm' . 'QWERTYUIOPLKJHGFDSAZXCVBNM' . '0123456789'; break; } $string = ''; for ($index = 0; $index < $this->length; $index++) $string .= substr($raw, mt_rand(0, strlen($raw) - 1), 1); if (!$this->upper) $string = strtolower($string); return $string; } } //echo new randomString(170, randomString::MIXED, TRUE).'<br/>'; //该片段来自于http://outofmemory.cn
- 上一篇:php 二位数组转向
- 下一篇:php 也发一个生成随机字符串函数
精彩图集
精彩文章