【问题标题】:Random String Generator (PHP)随机字符串生成器 (PHP)
【发布时间】:2012-04-19 14:38:45
【问题描述】:

我正在尝试编写一个返回给定长度的随机字符串的 PHP 函数。我是这样写的:

<?
function generate_string($lenght) {
    $ret = "";
    for ($i = 0; $i < $lenght; $i++) {
        $ret .= chr(mt_rand(32,126));
    }
    return $ret;
}

echo generate_string(150);
?>

上面的函数生成一个随机字符串,但是字符串的长度不是恒定的,即:一次是30个字符,一次是60个(显然我每次都用和输入一样的长度来调用它)。我搜索了随机字符串生成器的其他示例,但它们都使用基本字符串来选择字母。我想知道为什么这个方法不能正常工作。

谢谢!

【问题讨论】:

  • 你的函数调用是什么样的?
  • 向我们展示调用函数的代码(包括调用前后的行)。顺便说一句,长度拼写错误(不是 PHP 关心的。)
  • 另外,小问题:它是“长度”而不是“长度” - 也许你在某个地方混淆了这个?
  • @Komut,请将其放入您的帖子中,而不是评论中...您的长度超过了 150?

标签: php random


【解决方案1】:

有根据的猜测:您尝试将纯文本字符串显示为 HTML。浏览器在被告知它是 HTML 之后,就这样处理它。只要生成了&lt; 字符,以下字符就会呈现为(未知)HTML 标记,并且不会按照 HTML 标准要求显示。

修复:

echo htmlspecialchars(generate_string(150));

【讨论】:

    【解决方案2】:

    这是我测试一段时间后得出的结论:您的功能正常工作。这取决于您如何处理随机生成的字符串。如果您只是简单地回显它,那么它可能会生成类似&lt;ck1ask 的东西,它将被视为标签。尝试消除连接到字符串的某些字符。

    【讨论】:

      【解决方案3】:

      此函数将用于在 PHP 中生成随机字符串

      function getRandomString($maxlength=12, $isSpecialChar=false)
      {
          $randomString=null;
         //initalise the string include lower case, upper case and numbers
         $charSet = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
      
         //if required special character to include, please set $isSpecialchar= 1 or true
        if ($isSpecialChar) $charSet .= "~@#$%^*()_±={}|][";
      
        //loop for get specify length character with random characters
        for ($i=0; $i<$maxlength; $i++) $randomString .= $charSet[(mt_rand(0,   (strlen($charSet)-1)))];
      
         //return the random string
         return $randomString;
      }
      //call the function set value you required to string length default:12
      $random8char=getRandomString(8);
      echo $random8char;
      

      来源:Generate random string in php

      【讨论】:

        猜你喜欢
        • 2011-05-20
        • 2015-08-16
        • 2013-10-01
        • 2014-02-01
        • 1970-01-01
        • 2023-04-06
        • 2012-05-22
        • 1970-01-01
        相关资源
        最近更新 更多