>  기사  >  백엔드 개발  >  PHP 개발 기술(4) - 임의의 문자열을 얻는 두 가지 구현 방법에 대한 자세한 설명

PHP 개발 기술(4) - 임의의 문자열을 얻는 두 가지 구현 방법에 대한 자세한 설명

黄舟
黄舟원래의
2017-03-10 18:42:111301검색

임의의 문자열을 얻는 방법에는 여러 가지가 있습니다. 알고리즘이 잘 설계되어 있으면 원하는 결과를 쉽고 빠르게 얻을 수 있습니다. 임의의 문자열을 얻는 것은 일상 업무 프로그래밍에서도 많이 사용됩니다. 예를 들어 로그인 시 입력해야 하는 인증 코드, 휴대전화 SMS 인증 전송을 위한 인증 코드, 주문 생성 시 주문 번호 중복을 방지하기 위한 것 등이 있습니다. , 숫자가 반복되지 않는다는 보장을 높이기 위해 고유한 홀수 뒤에 임의의 문자열을 추가합니다. 사실, 프로그래밍을 아는 사람이라면 누구나 실제 무작위성이 없다는 것을 알고 있습니다. 모든 것이 그 규칙을 찾을 수 있습니다. 이에 대해서는 자세히 설명하지 않겠습니다.

여기서는 무작위 문자열을 생성하는 두 가지 방법을 연구하고 작성했습니다. 각각의 장점과 단점이 주요 목적은 모두와 함께 배우고 발전하는 것입니다. 좋은 의견과 제안이 있으면 남겨주세요. 메시지. 아래에서는 자세한 내용을 다루지 않겠습니다. 코드는 비교적 간단합니다. 중요한 것은 코드를 직접 읽어볼 수 있다는 것입니다.

<?php  
  
/** 
 * ======================================= 
 * Created by Zhihua_W. 
 * Author: Zhihua_W 
 * Date: 2016/12/1 0004 
 * Time: 下午 5:15 
 * Project: PHP开发小技巧 
 * Power: 两种方法实现获取随机字符串 
 * ======================================= 
 */  
  
/** 
 * 方法一:获取随机字符串 
 * @param number $length 长度 
 * @param string $type 类型 
 * @param number $convert 转换大小写 
 * @return string 随机字符串 
 */  
function random($length = 6, $type = &#39;string&#39;, $convert = 0)  
{  
    $config = array(  
        &#39;number&#39; => &#39;1234567890&#39;,  
        &#39;letter&#39; => &#39;abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ&#39;,  
        &#39;string&#39; => &#39;abcdefghjkmnpqrstuvwxyzABCDEFGHJKMNPQRSTUVWXYZ23456789&#39;,  
        &#39;all&#39; => &#39;abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890&#39;  
    );  
  
    if (!isset($config[$type]))  
        $type = &#39;string&#39;;  
    $string = $config[$type];  
  
    $code = &#39;&#39;;  
    $strlen = strlen($string) - 1;  
    for ($i = 0; $i < $length; $i++) {  
        $code .= $string{mt_rand(0, $strlen)};  
    }  
    if (!empty($convert)) {  
        $code = ($convert > 0) ? strtoupper($code) : strtolower($code);  
    }  
    return $code;  
}  
  
/** 
 * 方法二:获取随机字符串 
 * @param int $randLength 长度 
 * @param int $addtime 是否加入当前时间戳 
 * @param int $includenumber 是否包含数字 
 * @return string 
 */  
function rand_str($randLength = 6, $addtime = 1, $includenumber = 0)  
{  
    if ($includenumber) {  
        $chars = &#39;abcdefghijklmnopqrstuvwxyzABCDEFGHJKLMNPQEST123456789&#39;;  
    } else {  
        $chars = &#39;abcdefghijklmnopqrstuvwxyz&#39;;  
    }  
    $len = strlen($chars);  
    $randStr = &#39;&#39;;  
    for ($i = 0; $i < $randLength; $i++) {  
        $randStr .= $chars[rand(0, $len - 1)];  
    }  
    $tokenvalue = $randStr;  
    if ($addtime) {  
        $tokenvalue = $randStr . time();  
    }  
    return $tokenvalue;  
}  
  
//其中也可以放多个参数  
//random(4,&#39;number&#39;);  
//random(6,&#39;letter&#39;,1);  
echo random(10);  
//方法二同样  
echo rand_str(6);  
  
?>


위 내용은 PHP 개발 기술(4) - 임의의 문자열을 얻는 두 가지 구현 방법에 대한 자세한 설명의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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