ホームページ >バックエンド開発 >PHPの問題 >PHPでランダムな文字列を生成する方法

PHPでランダムな文字列を生成する方法

autoload
autoloadオリジナル
2021-03-17 15:14:454433ブラウズ

1. 主に 2 つの関数を使用します:

  • chr()

  • mt_rand()

2. 構文形式:

mt_rand() メルセンヌ ツイスター アルゴリズムを使用してランダムな整数を返します。

mt_rand(min,max)

オプションのパラメータ min および max が指定されていない場合、mt_rand() 0 から RAND_MAX までの擬似乱数を返します。たとえば、5 から 15 までの範囲の乱数が必要な場合は、mt_rand(5, 15) を使用します。古い libc 乱数ジェネレーターの多くは、不確実で未知の特性を備えており、非常に遅いです。 PHP の rand() 関数は、デフォルトで libc 乱数ジェネレータを使用します。 mt_rand() この関数は非公式にそれを置き換えるために使用されます。この関数は、Mersenne Twister の既知の機能を乱数ジェネレータとして使用し、libc# が提供する rand() よりも平均して高速に乱数値を生成できます。 ## 4 倍高速になりました。

chr()range (256) の範囲内の整数 (つまり、0 ~ 255) をパラメータとして使用し、対応する文字を返します。

chr(i)

戻り値は、現在の整数に対応する

ASCII 文字です。

3. 上記 2 つの関数を使用してランダムな文字列を生成します

<?php
  function getString($length = 4)
  {
    //从ASCII码中获取
    $captcha = &#39;&#39;;

    //随机取:大写、小写、数字
   for($i = 0;$i < $length; $i++){
     //随机确定是字母还是数字
     switch(mt_rand(1,3)){
         case 1:                //数字:49-57分别代表1-9
             $captcha .= chr(mt_rand(49,57));   
             break;
         case 2:                //小写字母:a-z
             $captcha .= chr(mt_rand(65,90));
             break;
         case 3:                //大写字母:A-Z
             $captcha .= chr(mt_rand(97,122));
             break;
      }
    }
    //返回
   return $captcha; 
   }
   
  echo getString(5);
?>

推奨事項:

php ビデオ チュートリアル php チュートリアル

以上がPHPでランダムな文字列を生成する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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