![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?e8efa67)
PHPマニュアル
http://www.php.net/manual/ja/function.fopen.php
上記ページの
>>
Windows ベースのシステムでは \r\n を使用します。 マッキントッシュベースのシステムでは \r を使用します。
間違った改行コードでファイルに書き込むと、 他のアプリケーション上でそのファイルを開いた際に変な風に見えてしまいます。
Windows上では、\nを\r\nに透過的に変換する text-mode変換フラグ('t')が提供されます。 それに対し、'b'を使って強制的にバイナリモードにすることもできます。 その場合データの変換はされません。 このフラグを使用するには、'b' または 't'を mode引数の最後に追加してください。
とある様にPHPにおいてfopen関数の第二引数のモードに付加する場合のバイナリモードとは
windows系プラットフォームにおいて書き込む文字列内に[¥n]というバイトがあった場合、プラットフォームにあわせて
自動的に書き出す際に¥r¥nに変換されるから・・・・。
という意味ですよね。
例えば、あるバイナリファイルに奇跡的に[¥n]というバイトがなかった場合、fopen("test.jpg","rw");でもよいということですよね?
No.1ベストアンサー
- 回答日時:
fgets/fwriteなどの全てのストリームの読み書き操作に、こんな関数が適用されると思ってください。
str_replace関数だと複数置換時にすでに置換した部分の上書きが起こるので、長さ順にソートして上書き置換を起こさないように自動でうまく調整してくれるstrtr関数を内部的に用います。/* 改行コードを全てPHP_EOLで使われているものに統一する関数 */
function filter($str) {
return strtr($str, array_fill_keys(array("\r\n", "\r", "\n"), PHP_EOL));
}
まぁ私は互換性の面から、テキストファイルであってもバイナリファイルであっても全て「b」を使うようにしてますが…Windowsであってもメモ帳以外のエディタであればCRLFでなくてLF単独で正しく扱えますし…
備考↓
[PHP] ファイルオープンモードに関するマニュアルの記述は間違っている
http://qiita.com/mpyw/items/3adcec3c66e515895b08
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- PHP アップロード画像数でCSSを分けることに成功したのですが、画像の横に文字を並べることが出来ません。 3 2023/07/28 17:16
- PHP PHP ページング データベース 1 2022/06/16 10:30
- JavaScript javascriptで変数を組み込みたい 2 2023/01/13 09:52
- その他(プログラミング・Web制作) 置換ソフトで指定したファイルの1行目に入力できるものを探しています 7 2022/11/24 10:34
- HTML・CSS WEBサイトの構築。表示データとWEBデザインを分離する考え方を専門用語・業界用語では何と言うか? 8 2022/09/27 09:16
- PDF acrobatでwordファイルをpdfに変換すると文字化けする 3 2023/02/10 09:31
- PHP htmlspecialcharsが機能していないです。 バグですか? 1 2022/04/05 01:22
- PHP PHP MySql ページング 2 2022/09/20 06:38
- Excel(エクセル) エクセルのVBAについて とあるサイトのコードを参考に、CSVの文字化けを直すVBAを作成しているの 7 2022/11/04 14:15
- フリーソフト Windowsの特殊文字を削除や変換したい そんなフリーソフトはありますか? 3 2022/11/09 00:05
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
TCP/IP通信の送信データについて
-
ポインター引数の関数でコンパ...
-
UTF-8で5~6バイトになる文字コ...
-
エクセルシート名の制限を変更...
-
DataGridViewの特定列に入力さ...
-
COBOLのCOMP形式について
-
Excel VBA メール作成について ...
-
10Mバイトて文字数に すると何...
-
char str[256]の256の意味は?
-
【Excel VBA】10進数を2進数に...
-
Excel 1セル当りの文字数が2...
-
perlチェックでエラーが出て困...
-
ビットスワップとバイトスワッ...
-
perlプログラミング 空白行削除
-
postで送られてきたパラメータ...
-
バイト列とバイナリ列の違いが...
-
SQLで1バイト、2バイト混在...
-
C#でのswitch文
-
テキストボックスに入力された...
-
URLは最高何文字まで可能なので...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
TCP/IP通信の送信データについて
-
html→aspxへのタグ変換方法
-
.netで、ibm漢字で書かれたテキ...
-
htmlソース編集で、各タグを何...
-
メールの件名をデコードしたい
-
PHPのfopen関数について質問です。
-
Rでのスクリプトのご相談
-
エクスプローラでp1,p2,p3…とい...
-
textデータをexcelに取り込む
-
XMLのnodeValueの中にHTMLタグ...
-
au(EZweb)は<font size=>タグ対...
-
動的なURLの場合、TITLEタグ内...
-
テキスト内容をバッチ処理で変...
-
【mailto】IEではまともなのにs...
-
HTMLEncodeのこと
-
MP3をWMAに変換(ジャケ画像付きで)
-
XMLとHTMLの違いについて
-
VAX浮動小数点形式
-
ポインター引数の関数でコンパ...
-
10Mバイトて文字数に すると何...
おすすめ情報