我创建了一个生成random number
的功能,但我想从此号码中移除 0
,我想开始这个数字任意数字不同指向 0
。
我的代码:
function createRandomNumber() {
$chars = "07659242202345640248765924276987346549823433445754767659242599";
srand ( ( double ) microtime () * 1000000 );
$i = 0;
$pass = '';
while ( $i <= 7 ) {
$num = rand () % 33;
$tmp = substr ( $chars, $num, 1 );
$pass = $pass . $tmp;
$i ++;
}
return $pass;
}
答案 0 :(得分:0)
您可以使用默认的随机数功能,即
<?php
mt_rand(1,7000);
?>
注意:以下内容并不安全,在生成所需输出时,这绝不是密码安全号码生成器,例如
random_int()
。
如果您从安全性的角度寻找安全的东西,那么开发自己的功能是一种选择。你可以保持你的功能不变,如果第一个字符为“0”,只需要替换字符串。
function createRandomNumber() {
$chars = "07659242202345640248765924276987346549823433445754767659242599";
srand ( ( double ) microtime () * 1000000 );
$i = 0;
$pass = '';
while ( $i <= 7 ) {
$num = rand () % 33;
$tmp = substr ( $chars, $num, 1 );
$pass = $pass . $tmp;
$i ++;
}
if($pass[0] == "0" ) {$pass = substr( $pass, 1);}
return $pass;
}
}
答案 1 :(得分:0)
function createRandomNumber() {
$chars = "07659242202345640248765924276987346549823433445754767659242599";
srand ( ( double ) microtime () * 1000000 );
$i = 0;
$pass = '';
// Loop until $pass has 8-characters
while ( strlen($pass) < 8 ) {
$num = rand () % 33;
$tmp = substr ( $chars, $num, 1 );
// avoid leading '0'
if (strlen($pass) === 0 && $tmp === '0') continue;
$pass = $pass . $tmp;
$i ++;
}
return $pass;
}
希望这有帮助。