[PHP-users 10329] Re: 添付ファイルを正しく保存できない
Moriyoshi Koizumi
php-users@php.gr.jp
Tue, 24 Sep 2002 20:43:23 +0900
小泉@町田です。
# スレッド途切れていたらすいません。
> > # 一目見て fopen のオプションが 'wb' になっていないからかも知れ
ないと
> > # 思いましたが、このオプションは実のところあまり関係ないようです
ね。
>
> それがなんと、ジャストミートです。(@_@;)
> 'w'を'wb'にしたとたん、正しく書き込めるようになりました。
後藤さんの指摘は存じていたのですが、
CGI版で試すと、なぜか不思議と 'r' と 'rb'、'w' と 'wb' の
違いが現れないのです。
それで、あのように、ちゃんと確認もせず書いてしまいました。
すみません。
そこで、詳しく調べてみました。以下の情報が正しい(はず)です。
1. CGI / FASTCGI 版では、
SAPI の中で setmode() 関数を使って、明示的に
バイナリモードにしているので、'b' をつけてもつけなくても
動作的にはバイナリモードになります。
逆にテキストモードにしたいときは 't' オプションをつけます。
2. Apache DSO版 / ISAPI版 では、上記のような現象は起こりません。
つまり、通常時がテキストモードで、'b' オプションをつけると
バイナリモードになります。
参考URL: http://msdn.microsoft.com/library/default.asp?
url=/library/en-
us/vccore98/HTML/_crt_text_and_binary_mode_file_i.2f.o.asp
--
Moriyoshi Koizumi <readjust@deneb.freemail.ne.jp>