PHP随机生成指定字符串方法

适用场景

用户注册随机验证码、随机用户名等

效果一

代码方法一

function get_string($lenth){
      $string = '';
      for ($i=1;$i<$lenth;$i++) {    
        $randstr = chr(rand(65,90));    //指定为字母
        $string .= $randstr; 
      }
      return $string;
    }
echo get_string(10);

方法二效果图

方法二

function random($length, $numeric = false) {
    $seed = base_convert(md5(microtime() . $_SERVER['DOCUMENT_ROOT']), 16, $numeric ? 10 : 35);
    $seed = $numeric ? (str_replace('0', '', $seed) . '012340567890') : ($seed . 'zZ' . strtoupper($seed));
    if ($numeric) {
        $hash = '';
    } else {
        $hash = chr(rand(1, 26) + rand(0, 1) * 32 + 64);
        $length--;
    }
    $max = strlen($seed) - 1;
    for ($i = 0; $i < $length; $i++) {
        $hash .= $seed{mt_rand(0, $max)};
    }
    return $hash;
}
echo random(10);

总结

方法一最终生成的会少一位。估计是编码的问题,方法二可以完全解决。

「点点赞赏,手留余香」

    还没有人赞赏,快来当第一个赞赏的人吧!
0 条回复 A 作者 M 管理员
    所有的伟大,都源于一个勇敢的开始!
欢迎您,新朋友,感谢参与互动!欢迎您 {{author}},您在本站有{{commentsCount}}条评论