カスタマイズ可能な長さ、文字、数字、大文字と小文字
- /*
- * ランダムな文字列を生成するクラス。デフォルトでは数字と大文字と小文字のみが含まれます
- * @author Jerry
- */
-
- 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->gt; 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' ;
- ブレーク;
- case self::LETTER_ONLY:
- $raw = 'qwertyuioplkjhgfdsazxcvbnm' .
- 'QWERTYUIOPLKJHGFDSAZXCVBNM';
- ブレーク;
-
- デフォルト:
- $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 = strto lower($string);
- return $string;
- }
-
- }
-
- //echo new randomString(170, randomString::MIXED, TRUE).'
';
-
-
-
コードをコピー
|