• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:ファイルをセーブする時のfopenのモードについて)

ファイルをセーブする時のfopenのモードについて

このQ&Aのポイント
  • アンケートの投票データをログに保存する方法についての質問です。ファイルを保存する際のfopen関数のモードによって問題が発生しているようです。
  • 現在の処理は、1行ずつデータを読み込み、ポストされた番号とデータの番号が一致していればデータを加算し、処理済みの行を一時的に保存し、全ての行の処理が終わったらまとめて保存するという流れです。
  • 保存時のfopenモードの選択によって問題が発生しているようで、読み込みモードと書き込みモードのどちらを選択すれば良いかわからない状態です。また、ファイルをロックしながらデータを消す方法についても知りたいです。

質問者が選んだベストアンサー

  • ベストアンサー
  • taba
  • ベストアンサー率61% (349/567)
回答No.1

'r+' 読みこみ・書きこみ用にオープンします。ファイルポインタを ファイルの先頭に置きます。 'w+' 読みこみ・書きこみ用でオープンします。ファイルポインタを ファイルの先頭に置き、ファイルサイズをゼロにします。 ファイルが存在しない場合には、作成を試みます。 マニュアルにはこういう風に書いてあります。r+で追加されるのは、ファイルポインタがデータの最後にあるからで(おそらく、その前にデータを読み込んでいるのでしょう)、w+だと消えるのは仕様です。 r+で読んだあとに、書き込み前にrewindしてください。 参考URLのfopenのマニュアルの下の記述の中に、サンプルがいくつかあると思います。英語だけど、ソースは読めると思うので、rewindを検索してみてください。

参考URL:
http://www.php.net/manual/ja/function.fopen.php
umioyo
質問者

お礼

ご回答ありがとうございます。 素晴らしいです。うまくできました。 めっちゃ感激いたしました。 本当に助かりました。ありがとうございます。