ホームページ  >  記事  >  バックエンド開発  >  PHP でランダムな単語から文字列を生成する 4 つの方法

PHP でランダムな単語から文字列を生成する 4 つの方法

零到壹度
零到壹度オリジナル
2018-04-11 17:57:322022ブラウズ

この記事の内容は、PHP でランダムな文字列を生成する 4 つの方法を共有することです。必要な友達は参考にしてください。以下では、ランダムな文字列を生成する 4 つの方法を紹介します。基本的な方法:

方法 1

:

1. 33 ~ 126 のランダムな整数 (35 など) を生成します。 2. 35 を対応する ASCII コード文字に変換します (# に対応する 35 など)。

3. 上記の手順 1 と 2 を n 回繰り返して、n 桁のパスワードに接続します。
このアルゴリズムは主に 2 つの関数を使用します。 mt_rand (int $min, int $max) 関数は、ランダムな整数を生成するために使用されます。ここで、$min – $max は、ASCII コードの範囲です。必要に応じて調整できます。たとえば、ASCII コード表の 97 ~ 122 ビットは、英語の文字 a ~ z に対応します。詳細については、chr (int $ascii) 関数が使用されます。対応する整数 $ascii を対応する文字に変換します。


 function create_password($pw_length =  
            { 
                    $randpwd = ”; 
                    for ($i = 0; $i < $pw_length; $i++) 
                    { 
                        $randpwd .= chr(mt_rand(33, 126)); 
                    } 
                            return $randpwd; 
              } 
                // 调用该函数,传递长度参数$pw_length = 6 
            echo create_password(6);



方法 2
:

1. a – z、A – Z、0 – 9、およびいくつかの特殊文字を含む文字列 $chars を事前に設定します。

2. $chars 文字列からランダムに文字を選択します。

3. 2 番目のステップを n 回繰り返して、長さ n のパスワードを取得します。

 function generate_password( $length = 8 ) 
       { 
                // 密码字符集,可任意添加你需要的字符        
                $chars = ‘abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789!@#$%^&*()-_                   
                  []{}<>~`+=,.;:/?|&#39;;         
                  $password = ”;        
                   for ( $i = 0; $i < $length; $i++ )          {      
                        // 这里提供两种字符获取方式           
                        // 第一种是使用 substr 截取$chars中的任意一位字符;           
                        // 第二种是取字符数组 $chars 的任意元素 
          // $password .= substr($chars, mt_rand(0, strlen($chars) – 1), 1); 
          // $password .= $str{mt_rand(0,strlen($chars) - 1)};    
          //生成php随机数
            $password .= $chars[ mt_rand(0, strlen($chars) - 1) ];             }             return $password;            }




方法 3
:

1. a – z、A – Z、0 – 9、およびいくつかの特殊文字を含む文字配列 $chars をプリセットします。

2. array_rand() を使用して、配列 $chars から $length 要素をランダムに選択します。

3. 取得したキー名配列 $keys に従って、配列 $chars から文字を取り出し、文字列を連結します。この方法の欠点は、同じ文字が繰り返し取得されないことです。


 function make_password( $length = 8 ) 
     {  
        // 密码字符集,可任意添加你需要的字符 
         $chars = array(‘a&#39;, ‘b&#39;, ‘c&#39;, ‘d&#39;, ‘e&#39;, ‘f&#39;, ‘g&#39;, ‘h&#39;, 
                 i&#39;, ‘j&#39;, ‘k&#39;, ‘l&#39;,&#39;m&#39;, ‘n&#39;, ‘o&#39;, ‘p&#39;, ‘q&#39;, ‘r&#39;, &#39;s&#39;, 
                ‘t&#39;, ‘u&#39;, ‘v&#39;, ‘w&#39;, ‘x&#39;, ‘y&#39;,&#39;z&#39;, ‘A&#39;, ‘B&#39;, ‘C&#39;, ‘D&#39;, 
                ‘E&#39;, ‘F&#39;, ‘G&#39;, ‘H&#39;, ‘I&#39;, ‘J&#39;, ‘K&#39;, ‘L&#39;,&#39;M&#39;, ‘N&#39;, ‘O&#39;, 
                ‘P&#39;, ‘Q&#39;, ‘R&#39;, ‘S&#39;, ‘T&#39;, ‘U&#39;, ‘V&#39;, ‘W&#39;, ‘X&#39;, ‘Y&#39;,&#39;Z&#39;, 
             ‘0′, ‘1′, ‘2′, ‘3′, ‘4′, ‘5′, ‘6′, ‘7′, ‘8′, ‘9′, ‘!&#39;, 
                 ‘@&#39;,&#39;#&#39;, ‘$&#39;, ‘%&#39;, ‘^&#39;, ‘&&#39;, ‘*&#39;, ‘(‘, ‘)&#39;, ‘-&#39;, ‘_&#39;, 
                ‘[&#39;, &#39;]‘, ‘{‘, ‘}&#39;, ‘<&#39;, ‘>&#39;, ‘~&#39;, ‘`&#39;, ‘+&#39;, ‘=&#39;, ‘,&#39;, 
                 ‘.&#39;, ‘;&#39;, ‘:&#39;, ‘/&#39;, ‘?&#39;, ‘|&#39;); 
   
            // 在 $chars 中随机取 $length 个数组元素键名 
            $keys =array_rand ($chars, $length); 
            $password = ”; 
           for($i = 0; $i < $length; $i++) 
          { 
             // 将 $length 个数组元素连接成字符串 
              $password .= $chars[$keys[$i]]; 
          } 
            return $password; 
         }



方法 4:

基本的な考え方: md5 暗号化して 32 ビット文字列を生成 乱数 + 現在のタイムスタンプを取得できる 繰り返しの可能性が低い乱数のコードは次のとおりです:

 $rand = md5(time() . mt_rand(0,1000));


補足: PHP変数の後に中括弧{}を追加し、PHP変数の対応するシリアル番号の文字を参照する数字を記入します。例:
文字列が満足するかどうかを確認します。 長さに応じて、中括弧 (中括弧) と isset を使用して strlen 関数を置き換えることを検討できます。 isset は言語構造であり、strlen は関数であるため、isset を使用する方が適切です。 strlen を使用するよりも効率的です。
たとえば、文字列の長さが 5 未満かどうかを判断するには:
if ( !isset ( $str{5} ) ) は if ( strlen ( $str )

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

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