ちゃんと追記されてますよ。(【結果1】参照)
改行してないので1行めの後ろにどんどん追加されていくから追記されてないように見えてるんじゃないでしょうか?
改行する場合は、fputs($fp, $comment);
をfputs($fp, $comment.PHP_EOL);
と改行コードを追加したものをfputs()
に渡してください。(【結果2】参照)
【結果1】
$ cat -n append.php
1 <?php
2 ### 該当のソースコード
3 $_POST["comment"]='追記される文字列';
4 if (isset($_POST["comment"])){
5
6 $comment=$_POST["comment"];
7 $box="mission_2-2.txt";
8
9
10 $fp = fopen($box, "a");
11 fputs($fp, $comment);
12 fclose($fp);
13
14 echo $_POST["comment"]."を受け付けました。";
15
16 if (preg_match("/完成!/",$comment)){
17 echo "おめでとう!";
18 }
19 }
20
$ ll mission_2-2.txt
ls: 'mission_2-2.txt' にアクセスできません: そのようなファイルやディレクトリはありません
$ php append.php
追記される文字列を受け付けました。$
$ ll mission_2-2.txt
-rw-rw-rw- 1 hoge_ hoge_ 24 9月 25 16:24 mission_2-2.txt
$ cat mission_2-2.txt
追記される文字列$
$ php append.php
追記される文字列を受け付けました。$
$ ll mission_2-2.txt
-rw-rw-rw- 1 hoge_ hoge_ 48 9月 25 16:25 mission_2-2.txt
$ cat mission_2-2.txt
追記される文字列追記される文字列$
【結果2】
$ cat -n append.php
1 <?php
2 ### 該当のソースコード
3 $_POST["comment"]='追記される文字列';
4 if (isset($_POST["comment"])){
5
6 $comment=$_POST["comment"];
7 $box="mission_2-2.txt";
8
9
10 $fp = fopen($box, "a");
11 fputs($fp, $comment.PHP_EOL);
12 fclose($fp);
13
14 echo $_POST["comment"]."を受け付けました。";
15
16 if (preg_match("/完成!/",$comment)){
17 echo "おめでとう!";
18 }
19 }
20
$ ll mission_2-2.txt
ls: 'mission_2-2.txt' にアクセスできません: そのようなファイルやディレクトリはありません
$ php append.php
追記される文字列を受け付けました。$
$ ll mission_2-2.txt
-rw-rw-rw- 1 hoge_ hoge_ 25 9月 25 16:31 mission_2-2.txt
$ cat mission_2-2.txt
追記される文字列
$ php append.php
追記される文字列を受け付けました。$
$ ll mission_2-2.txt
-rw-rw-rw- 1 hoge_ hoge_ 50 9月 25 16:31 mission_2-2.txt
$ cat mission_2-2.txt
追記される文字列
追記される文字列
$