質問: array( $num => $tmp[0], "name" => $tmp[1], "comment" => $tmp[2], $date => $tmp[3] ); $dataArr[]= $arr; } ?> 掲示板 名前:" > コメント: ::
回答: 考え方としては、追記をする前に現在どれだけデータが存在するかを確認し、追記するタイミングでIDを追加するという形が楽かと思います。 (データの削除はされ無いという前提) 現状では ``` $file = "abc.txt"; $fp = fopen($file, "ab"); fwrite($fp, $num . '<>' . $_POST["name"] . '<>' . $_POST["comment"] . '<>' . $date. "\n"); fclose($fp); $message = "書き込みに成功しました"; ``` ここで書き込みを行っているのですが、ここではデータがどれくらいあるかを確認する前なので、次に振るべきIDがわかりません。 少し後の ``` $fp_r = fopen($file,"r"); $dataArr= array(); while( $res = fgets($fp_r)){ $tmp = explode("<>",$res); $arr = array( $num => $tmp[0], "name" => $tmp[1], "comment" => $tmp[2], $date => $tmp[3] ); $dataArr[]= $arr; } ``` この辺でファイルの行をすべて配列に格納しているので、 これより後であれば ``` count($dataArr); ``` のような感じでデータの数を数えることが出来ます。 ということで、現状のソースに手っ取り早くIDの追記を実装するとすれば 1. 追記前にファイルを配列に読み込む処理を加える 2. 配列の数を数えてIDを取得して、追記する 3. 再度ファイルを読み直す という感じかなと思います。 この場合、1と3で殆ど同じ処理を行うことになって無駄なので、うまくいった後に修正を試みてみるのも勉強になるかと思います。