随机生成一个角色?

时间:2011-10-27 14:21:39

标签: php

我在PHP中随机生成字符,使用:

for ($i = 0; $i < $length; $i++) {  
    $generatedCode .= chr(rand(97, 122));  
}

但我不希望字母“g”和“m”出现在随机生成的字符串中,我该怎么办呢?

5 个答案:

答案 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--;
    }
}
相关问题