フォームに入力された数値を、ファイルに追記で記録し、その内容を画面に表示する。表示する際に、3の倍数なら「Fizz」、5の倍数なら「Buzz」、3と5の倍数なら「FizzBuzz」と表示。
・ファイルに書き込む時は Fizz-Buzzにはせず、数字のまま。そして書き込みごとに改行をする。
・ファイルの内容を画面に表示する際に「Fizz-Buzz」の結果に変換する。
という問題なのですが、ファイルにはFizz-Buzzの結果ではなく、数字が表示されてしまいます。上手くいかない理由としては、表示しようとしているところとFizz-Buzzに変換するところが別れているからだと考えられますが、表示機能の中にFizz-Buzzを組み込む方法がわかりません。誰か教えていただけると幸いです。
<html lang="ja"> <head> <meta charset="UTF-8"> <title>mission_1-27</title> </head> <body> <form action="" method="post"> <input type="number" name="num" placeholder="数字を入力してください"> <input type="submit" name="submit"> </form> <?php $num = $_POST["num"]; if ($num % 3 == 0 && $num % 5 == 0) { echo "FizzBuzz<br>"; } elseif ($num % 3 == 0) { echo "Fizz<br>"; } elseif ($num % 5 == 0) { echo "Buzz<br>"; } else { echo $num . "<br>"; } $str = "$num"; $filename="mission_1-27.txt"; $fp = fopen($filename,"a"); fwrite($fp, $str.PHP_EOL); fclose($fp); echo "書き込み成功!<br>";コード
if(file_exists($filename)){
$lines = file($filename,FILE_IGNORE_NEW_LINES);
foreach($lines as $line){
echo $line . "<br>";
}
}
?>
回答2件
あなたの回答
tips
プレビュー