>백엔드 개발 >PHP 튜토리얼 >PHP에서 임의의 단어로 문자열을 생성하는 네 가지 방법

PHP에서 임의의 단어로 문자열을 생성하는 네 가지 방법

零到壹度
零到壹度원래의
2018-04-11 17:57:322109검색

이 글의 내용은 PHP에서 임의의 문자열을 생성하는 네 가지 방법을 공유하는 것입니다. 이는 특정 참조 값을 가지고 있습니다. 필요한 친구는 이를 참조할 수 있습니다.

다음은 임의의 문자열을 생성하는 네 가지 방법을 소개합니다. . 기본 방법:

방법 1:

1 33~126의 임의의 정수를 생성합니다.

2. 35를 해당 ASCII 코드 문자로 변환합니다(예: #에 해당하는 35).

3. 위의 1단계와 2단계를 n번 반복하여 n자리 비밀번호에 연결합니다.

이 알고리즘은 주로 두 가지 함수를 사용합니다. 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. 길이 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 ) < 5 )보다 낫습니다.        

위 내용은 PHP에서 임의의 단어로 문자열을 생성하는 네 가지 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.