避免在生成的密码代码中使用空格


Avoid space from generated password code

如果我们连续运行下面的代码,有时我们会发现它在密码中生成了一些不应该得到的空格。

有人能告诉我们如何避免下面生成的密码代码中的空格字符吗:

这是代码:

   function generateRandomPassword($length) {
      srand((double)microtime()*1000000);
      $password = "";
      $vowels = array("a", "e", "i", "o", "u");
      $cons = array("b", "c", "d", "g", "h", "j", "k", "l", "m", "n", "p", "r",
"s", "t", "u", "v", "w", "tr", "cr", "br", "fr", "th", "dr", "ch", "ph", "wr", "
st", "sp", "sw", "pr", "sl", "cl");
      $num_vowels = count($vowels);
      $num_cons = count($cons);
      for($i = 0; $i < $length; $i++) {
         $c = $cons[rand(0, $num_cons - 1)];
         if (rand(0,1)) $c = strtoupper($c);
         $v = $vowels[rand(0, $num_vowels - 1)];
         if (rand(0,1)) $v = strtoupper($v);
         $password .= $c . $v;
         if (rand(0,4) == 0) $password .= rand(0,9);
      }
      return substr($password, 0, $length);
   }
$pwd = generateRandomPassword(12);
echo $pwd;

用以下内容替换return语句:

  return trim(substr($password, 0, $length));

对于所有空白使用:

return preg_replace('/'s+/', '', substr($password, 0, $length));

trim()从字符串中去除空白。但是代码的问题是在$cons变量的st中有一个空白。

PhP微调功能