PHP「英単語を推測するゲーム」を紹介
全体コードはこんな感じになっています。
<form method=”post”>
<input type=”text” name=”text1″ size=”1″>
<input type=”text” name=”text2″ size=”1″>
<input type=”text” name=”text3″ size=”1″>
<input type=”text” name=”text4″ size=”1″>
<input type=”text” name=”text5″ size=”1″>
<input type=”text” name=”text6″ size=”1″>
<input type=”text” name=”text7″ size=”1″>
<input type=”text” name=”text8″ size=”1″>
<input type=”submit” value=”送信する”>
</form>
<?php
// 正解を変数に入れる
$answer = “Tomorrow”;
$first = filter_input(INPUT_POST,”text1″);
if(!ctype_alnum($first)){
echo”入力してください”;
}else if (mb_strlen($first) !=1){
echo”1つの枠に1文字だけ入力してください”;
} else if($first == substr($answer,0,1)){
echo $first.”は正解”;
} else{
echo $first.”はハズレ”;
}
まず入力フォームを作ります!今回は「Tomorrow」という文字が正解にしたいのでHTMLで文字入力を8個のtextホームを作ります!

<form method=”post”>
<input type=”text” name=”text1″ size=”1″>
<input type=”text” name=”text2″ size=”1″>
<input type=”text” name=”text3″ size=”1″>
<input type=”text” name=”text4″ size=”1″>
<input type=”text” name=”text5″ size=”1″>
<input type=”text” name=”text6″ size=”1″>
<input type=”text” name=”text7″ size=”1″>
<input type=”text” name=”text8″ size=”1″>
<input type=”submit” value=”送信する”>
</form>
次にPHPを書いていく
まず$answerの変数にTomorrow(答え)を作ります
$answer = “Tomorrow”;
次にtext1を唱えていきます
$first = filter_input(INPUT_POST,”text1″);
ここでif文を使っていきます。そして一気にelseを使いまくって完成させて行きます!
まずctype_alnumを使って$firstが「英語で表示されているか」を確認します。
if(!ctype_alnum($first)){
入力していない場合も入力してくださいを表示します。
echo”入力してください”;
次に上がクリアしたら1つの枠に1文字しか入っていないかを確かめる。mb_strlenを使います!mb_strlenは文字数を設定して確かめる関数です。続きに!=1で1文字か確認します。
}else if (mb_strlen($first) !=1){mb_strlen
1文字以上入力していたなら↓を表示させます!
echo”1つの枠に1文字だけ入力してください”;
substrで一番最初の文字を確認します。なので「Tomorrow」の場合($answer,0,1)の
0がTということなのでTを持ってきたって言う感じです。
} else if($first == substr($answer,0,1)){
そしてTが入力されたならecho $first.”は正解”; と唱えて「Tは正解」を表示させます。
echo $first.”は正解”;
違った場合”はハズレ”と表示させるため↓のように書きます。
} else{
echo $first.”はハズレ”;
}
そして閉じて今書いたPHPを文字数(8文字)分作ると完成です!!
全部文字を入れて送信するを押すと↓のように○は正解ですと言う形で表示されます。

まとめ
今回は「ctype_alnum」や「mb_strlen」などを意識したコードを紹介しました。私のやり方はPHPを複数作るやり方ですがfor分を使ったやり方もあるのでぜひやってみてください!