提问人:anrui71 提问时间:12/31/2022 最后编辑:Neha Sonianrui71 更新时间:12/31/2022 访问量:67
“虽然 ( strlen($tmppwd) < 20 )...”返回少于 20 个字符的字符串
"while ( strlen($tmppwd) < 20 )..." returns strings shorter than 20 characters
问:
我正在尝试生成一个长度为 20 个字符的随机字符串,并从我的程序中得到意外的行为, 很好奇我错过了什么。
代码如下:
<?php
$tmppwd ="";
while ( strlen($tmppwd) < 20 ) {
$zufall = rand(33,126);
if ($zufall != 36 && $zufall !=63 && $zufall !=61) {
$tmppwd.=chr($zufall);
}
echo strlen($tmppwd)." | ";
}
exit($tmppwd);
?>
这个简短的代码片段不时返回长度小于 20 个字符的字符串(例如“~#z-k”),而在这种情况下,echo 和 exit 一起返回
"1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | \~#z-k"...
答:
-2赞
Ali Usama
12/31/2022
#1
在这里,我更新了您的代码,现在它给出的字符串不少于 20 个字符 将字符连接到字符串时的简单添加计数器
<?php
$tmppwd ="";
$countrer = 0;
while ( $countrer < 20 ) {
$zufall = rand(33,126);
if ($zufall != 36 && $zufall !=63 && $zufall !=61) {
$tmppwd.=chr($zufall);
$countrer ++;
}
echo strlen($tmppwd)." | ";
}
exit($tmppwd);
?>
评论
1赞
nice_dev
12/31/2022
OP的代码无论如何都是正确的!
0赞
Your Common Sense
12/31/2022
如果你不了解问题,就不要写解决方案
评论
exit
>
"
$ and =