0

私は次のコードを持っています:

<?php
if (!isset($_SESSION["word"])) {
    $dictionary_file = new SplFileObject("dictionary.txt");
    $dictionary_file->seek(rand(0, 80367));
    $_SESSION["word"] = $dictionary_file->current();
    $_SESSION["word_progress"] = "";

    for ($i = 0; $i < strlen($_SESSION["word"]); $i++) {
        $_SESSION["word_progress"] .= "_";
    }
    echo strlen($_SESSION["word"]);
    echo $_SESSION["word"];
}
else {
    if (isset($_GET["guess"])) {
        // If their guessed letter is in the word
        if (stripos($_SESSION["word"], $_GET["guess"]) !== false) {
            $occurrence_points = strposall($_SESSION["word"], $_GET["guess"]);
            $progress = $_SESSION["word_progress"];

            foreach ($occurrence_points as $values) {
                $progress[$values] = $_GET["guess"];
            }

            $_SESSION["word_progress"] = $progress;
        }
    }
}

?>

ファイルからランダムに単語を生成します。「バブル」を生成するとします。長さは6ですが、印刷して単語が実際にバブルであることを確認した後でも、8と報告されます。どうしてこれなの?

4

1 に答える 1

1

ランダムに生成された単語が空白を追加している可能性があります。トリム()を行います

   $_SESSION["word"] = trim($dictionary_file->current());
于 2013-02-16T22:38:29.670 に答える