Maison  >  Article  >  développement back-end  >  Compétences en développement PHP (4) - Explication détaillée de deux méthodes d'implémentation pour obtenir des chaînes aléatoires

Compétences en développement PHP (4) - Explication détaillée de deux méthodes d'implémentation pour obtenir des chaînes aléatoires

黄舟
黄舟original
2017-03-10 18:42:111367parcourir

Il existe de nombreuses façons d'obtenir des chaînes aléatoires Tant que votre algorithme est bien conçu, vous pouvez obtenir les résultats souhaités facilement et rapidement. L'obtention de chaînes aléatoires est également beaucoup utilisée dans notre programmation de travail quotidienne, par exemple : le code de vérification à saisir lors de la connexion, le code de vérification pour l'envoi de SMS de vérification sur téléphone portable, et afin d'éviter la duplication des numéros de commande lorsque nous générons des commandes. , nous ajouterons une chaîne aléatoire après le nombre impair inhérent pour augmenter la garantie que le nombre ne sera pas répété, etc. En fait, quiconque connaît la programmation sait qu’il n’y a pas de véritable hasard. Tout peut trouver ses règles. La question est simplement de savoir si c’est difficile ou non.

J'ai recherché et écrit ici deux méthodes pour générer des chaînes aléatoires. Chacune a ses propres avantages et inconvénients. Le but principal est d'apprendre et de progresser avec tout le monde. Si vous avez de bonnes opinions et suggestions, veuillez partir. un message. Je n'entrerai pas dans les détails ci-dessous. Le code est relativement simple. L'essentiel est de fournir une idée ou une méthode. Vous pouvez lire le code directement

<?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);  
  
?>


.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn