我在PHP中随机生成字符,使用:
for ($i = 0; $i < $length; $i++) {
$generatedCode .= chr(rand(97, 122));
}
但我不希望字母“g”和“m”出现在随机生成的字符串中,我该怎么办呢?
答案 0 :(得分:9)
$chars = array_diff(range('a', 'z'), array('g', 'm'));
$generatedCode = '';
for ($i = 0; $i < $length; $i++) {
$generatedCode .= $chars[array_rand($chars)];
}
答案 1 :(得分:2)
for ($i = 0; $i < $length; $i++) {
do {
$randChar = chr(rand(97, 122));
} while($randChar != 'g' && $randChar != 'm');
$generatedCode .= $randChar;
}
答案 2 :(得分:1)
执行循环,直到找到正确的值。
for ($i = 0; $i < $length;) {
$code = chr(rand(97, 122));
if ($code !== 'm' && $code !== 'g') // add the correct values here
{
$i++
$generatedCode .= $code;
}
}
答案 3 :(得分:1)
简单地说,过滤掉'g'和'm';
<?php
$length = 8;
$generatedCode = '';
while( strlen( $generatedCode ) < $length ) {
$random = chr(rand(97, 122));
if( !in_array( $random, array( 'g', 'm' ) ) ) {
$generatedCode .= $random;
}
}
echo $generatedCode;
答案 4 :(得分:0)
for ($i = 0; $i < $length; $i++) {
$generated = chr(rand(97, 122));
if ($generated != "g" && $generated != "m") {
$generatedCode .= $generated;
}
else{
$i--;
}
}