質問: fopen($another,'r+'); //データを格納するファイル読み込み fwrite($fap, $data); //フォームからの文字列書き込み fclose($fap); ?> ``` ### 試したこと 課題に対してアプローチしたことを記載してください 結果を出力するファイルと投稿番号を記録するファイルをそれぞれsampe3.txt , sample4.txtとし、sample3.txtに0を入力し、rewind()で読み込み位置を毎回先頭から行うようにしました。 ### 補足情報(言語/FW/ツール等のバージョンなど) より詳細な情報
回答: > > $length = 8; //文字列の桁数 > > > のところで改行の文字数も含めて長さを調整して例えば+1する。windowsは+2? > > fwrite($fp, $count); //ファイルにカウント数を書き込み > > > $count++;のところで1になってしまうので ``` fwrite($fp, sprintf("%08d",$count)); ``` ではいかがでしょうか? ファイルの書込みと読込みの処理を以下のプログラムにてテストをしました。(Linux、php、CentOS環境) ``` $file = 'sample3.txt'; //カウント数を記録するファイル $fp = fopen($file,'r+'); //ファイル読み込み $length = 9; //文字列の桁数 if($fp){ $count = fgets($fp,$length); //ファイルから文字列取得 echo "count:$count\n"; $count++; rewind($fp); //ファイルポインタの位置を先頭に戻す。 fwrite($fp, sprintf("%08d",$count)); //ファイルにカウント数を書き込み flock($fp, LOCK_UN);//ファイルをロック } fclose($fp); ``` 結果4回目です。 [242@server test]$ cat sample3.txt 00000004 9バイト目は改行の様です。 hexdump -c sample3.txt 0000000 0 0 0 0 0 0 0 4 \n 0000009