ホームページ  >  記事  >  バックエンド開発  >  任意の長さの文字列を生成するクラス(自由にカスタマイズ)

任意の長さの文字列を生成するクラス(自由にカスタマイズ)

WBOY
WBOYオリジナル
2016-07-25 08:50:261021ブラウズ
カスタマイズ可能な長さ、文字、数字、大文字と小文字
  1. /*
  2. * ランダムな文字列を生成するクラス。デフォルトでは数字と大文字と小文字のみが含まれます
  3. * @author Jerry
  4. */
  5. class randomString {
  6. /*
  7. * 生成された文字列に含まれる文字の設定
  8. */
  9. const NUMERIC_ONLY = 1; //数字のみを含む
  10. const LETTER_ONLY = 2 //文字のみを含む
  11. const MIXED = 3;文字
  12. /*
  13. * ユーザーによって渡される変数は、文字列の長さ、文字列に大文字が含まれているかどうかです
  14. */
  15. protected $length, $type, $upper;
  16. /*
  17. * パラメータの初期化
  18. * @param int,$length 文字列の長さ
  19. * @param const,$type 生成される文字列の型
  20. * @param boolean,$upper 大文字が含まれるかどうか
  21. */
  22. public function __construct($length = 16, $type = self::MIXED, $upper = true) {
  23. $this->length = $length;
  24. $this->type = $type;
  25. $this->gt; upper = $upper;
  26. }
  27. / *
  28. * オブジェクトが文字列に変換されるときに呼び出されます
  29. * @return string
  30. */
  31. public function __toString() {
  32. return $this->pickUpChars();
  33. }
  34. /*
  35. * ランダムな文字列を生成します
  36. * @global $type
  37. * @return string,$string
  38. */
  39. public function pickUpChars() {
  40. switch ($this->type) {
  41. case self ::NUMERIC_ONLY:
  42. $raw = '0123456789' ;
  43. ブレーク;
  44. case self::LETTER_ONLY:
  45. $raw = 'qwertyuioplkjhgfdsazxcvbnm' .
  46. 'QWERTYUIOPLKJHGFDSAZXCVBNM';
  47. ブレーク;
  48. デフォルト:
  49. $raw = 'qwertyuioplkjhgfdsazxcvbnm' 。
  50. 'QWERTYUIOPLKJHGFDSAZXCVBNM' .
  51. '0123456789';
  52. Break;
  53. }
  54. $string = '';
  55. for ($index = 0; $index < $this->length; $index++)
  56. $string .= substr ($raw, mt_rand(0, strlen($ raw) - 1), 1);
  57. if (!$this->upper)
  58. $string = strto lower($string);
  59. return $string;
  60. }
  61. }
  62. //echo new randomString(170, randomString::MIXED, TRUE).'
    ';
コードをコピー
任意の長さの文字列を生成するクラス(自由にカスタマイズ)


声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。