質問: fopen("kadai.txt", "a"); fwrite($fp,$newData); fclose($fp); ?> ### 試したこと fgets関数などを使ってみたのですが、投稿番号が正しく表示されません。 ### 補足情報(言語/FW/ツール等のバージョンなど) プログラミングは初心者なので、初心者にもわかるように詳しく教えて頂けると幸いです。 よろしくお願い致します。
回答: `$count`が未定義なので追記ができていません。 #### $countの定義 * `kadai.txt`の最終行の投稿番号に`+1`した値 * 投稿は「{投稿番号}\t<>\t{名前}\t<>\t{コメント}\t<>\t{投稿時刻}」のフォーマット `fopen($filename, 'a+')`で「読み/書き」でファイルをオープンしてから、`fseek($fp, -1, SEEK_END)`でカーソル(ファイルポインタ)を最終行に移動して、`fgets($fp)`で最終行を読み込みます。 新規投稿を書き込むときは`fseek()`カーソル(ファイルポインタ)の位置によらず、常に一番最後に追記されます。 HTMLの意味が違うかもしれませんが、下記PHPファイルを`sample.php`として保存してから実行すればそのまま同じディレクトリに`kadai.txt`が保存されるようになっています。 **※セキュリティなどは一切考慮していないのでこのままコピーして何かの本番業務に使用するのは危険です。** ``` sample 名前"> コメント"> \t", $end); if (count($end) > 0) { $count = intval($end[0]) + 1; //最新の投稿番号 } } //新規投稿保存フォーマット $newData = "{".$count."}"."\t<>\t". "{".$name."}"."\t<>\t"."{".$comment."}"."\t<>\t"."{".$postedAt."}"."\n"; fwrite($fp, $newData); fclose($fp); } ?> ```