0

指定された長さのランダムな文字列を返す PHP 関数を作成しようとしています。私はこれを書きました:

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

echo generate_string(150);
?>

上記の関数はランダムな文字列を生成しますが、文字列の長さは一定ではありません。つまり、1 回は 30 文字で、もう 1 回は 60 文字です (明らかに、毎回入力と同じ長さで呼び出します)。ランダム文字列ジェネレーターの他の例を検索しましたが、それらはすべて基本文字列を使用して文字を選択します。なぜこの方法が適切に機能しないのか疑問に思っています。

ありがとう!

4

3 に答える 3

3

経験に基づいた推測: プレーン テキスト文字列を HTML として表示しようとしています。ブラウザーは、HTML であると通知された後、HTML として処理します。文字が生成されるとすぐに<、次の文字が (不明な) HTML タグとしてレンダリングされ、HTML 標準の命令として表示されません。

修理:

echo htmlspecialchars(generate_string(150));
于 2012-04-19T14:50:55.823 に答える
0

これは、しばらくテストした後に到達した結論です。関数は正しく動作します。ランダムに生成された文字列をどうするかによって異なります。単にエコーしている場合は<ck1ask、タグのように扱われるようなものを生成する可能性があります。特定の文字が文字列に連結されないようにしてください。

于 2012-04-19T14:51:37.193 に答える