【问题标题】:How to generate 34 alphanumerics with a pattern in PHP? [closed]如何在 PHP 中生成带有模式的 34 个字母数字? [关闭]
【发布时间】:2020-06-02 14:19:33
【问题描述】:

我想生成 34 个随机字母(大写和非大写)和数字。在生成的 34 个随机字母数字之前,有一个词 pro_sec_,每次生成时都会出现。而25号和26号是00

所以生成的结果将是:(只是一个例子)

pro_sec_Vy6Q67sh6HvP90j7gWnq6SxN00p8Gapu66

另一个前任。 pro_sec_6B57nTshusbnay6esjabxns800nGvaz2Lov

25号和26号的pro_sec_和00总是一样的,其余的只是生成。

【问题讨论】:

  • 你的代码在哪里?什么不适合它?

标签: php random generate


【解决方案1】:

这应该适合你:

<?php
function getToken($n) {
    $characters = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';
    $randomString = '';

    for ($i = 0; $i < $n; $i++) {
        $index = rand(0, strlen($characters) - 1);
        $randomString .= $characters[$index];
    }

    return $randomString;
}

echo 'pro_sec_' . getToken(24) . '00' . getToken(9);

【讨论】:

    【解决方案2】:

    不使用任何循环或两次调用函数的高性能解决方案:

    $chars = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';
    $split = str_split(substr(str_shuffle($chars), 0, 32), 25);
    $res = 'pro_sec_'.$split[0].'00'.$split[1];
    
    echo $res; // pro_sec_c8s5iwyQY0nZoJf73EOkC9vqS00dNLWVKg
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-04-26
      相关资源
      最近更新 更多