先日も質問したのですが、CSVの最初の行にデータを追加したいです。
カンマのみの一行ファイル(,の数6個)を一つ作り一行のファイルにCSVファイルを書き足し、名前を入れ替える処理を教えていただきました。データは追加できるようになったのですが最初の行にデータを追加すると最終行からひとつずつデータが消えていくようになりました。およそ書き換えた後ファイルを入れ替え初期化し、カンマを打って初期ファイルを毎回作り直すプログラムでそこが問題なのではないかと思っているのですがいい案はありますでしょうか?回答もらえるとうれしいです。
コードif($lock = fopen(LOCK_FILE, "w+")){ if($fp = fopen(CSV2_FILE, "a+")){ $f=fopen(CSV_FILE,"w+"); foreach($_POST["csv"] as $key => $value){ $del = true; foreach($value as $k => $v){ if($v != "") $del = false; } // 全て空の場合は削除 if($del) continue; // SJISに変換 $line = mb_convert_encoding(join(",",$value),CSV_ENCODE,FORM_ENCODE)."\n"; // ファイルへ書き込み fwrite($fp,$line); ftruncate($f,0); file_put_contents("csv1.csv",",,,,,,"."\n"); } ftruncate($fp,ftell($fp)); fclose($fp); rename(CSV2_FILE,"temp.csv"); rename(CSV_FILE,"csv2.csv"); rename("temp.csv","csv1.csv");
よろしくお願いします

回答1件
あなたの回答
tips
プレビュー