- 締切済み
fopenのモードによりfgetsするレングスが異なるのは何故ですか?
ファイルを読み、そのレングスをチェックしています。 $file = @fopen($_FILES['fl']['tmp_name'],"r"); if ($file) { while (!feof($file)) { $rec = fgets($file); print("レングス".strlen($rec)."<br>"); (後略) 例えば1500バイトの固定長ファイルを読んだ場合、 fopenモード"r"だと以下の通りです。 レングス1502(改行が含まれるので1500+2?) レングス1502 これをモード"r+"にすると以下のようになります。 レングス1502 レングス1499 両者の差はどこから来ているのでしょうか? ご教示いただけると幸いです。
- みんなの回答 (1)
- 専門家の回答
みんなの回答
- yambejp
- ベストアンサー率51% (3827/7415)
回答No.1
私の環境では再現しませんね。 単純に短いのですから、中身を確認してみては?
お礼
ご回答ありがとうございます。 よくよく調べたところ、モード"r+"の時に、 プログラム内でファイルの内容を破壊するような 処理がありました。 故に、レングスが変わってしまっていたようです。