0

サーバー上で生成され、改行を含むtxtファイルがあります。ftpエディターでファイルを表示すると、ここにあります。ftpクライアントからダウンロードして、メモ帳のあるウィンドウで開くと、改行も表示されます。

しかし、ダウンロードウィンドウを強制してブラウザからダウンロードし、ファイルを開こうとすると、新しい行がすべて突然消えてしまいます。

これは私が今持っているコードです。また、コンテンツタイプをapplication / force-downloadに設定しようとしましたが、それでも違いはありませんでした。

header('Content-Type: text/plain');
header('Content-Disposition: attachment; filename="'.$myFile.'"');
header("Content-Transfer-Encoding: binary");

ブラウザからダウンロードしたときにのみ新しい行が表示されない理由はありますか?しかし、サーバーでファイルを表示したり、FTPからダウンロードしてメモ帳で開いたりしても、問題はありませんか?

4

1 に答える 1

2

Unixの行末(\ n)は、Windowsの行末(\ r \ n)とは異なります。多くのFTPプログラムには、オペレーティングシステム間で行末を自動的に変換するオプションがあります。お使いのブラウザはこれを行っていません(ブラウザはテキスト/プレーンに触れません)。

二重に確認したい場合は、ファイルを16進ダンプして、改行がどこにあるべきかを調べることができます。

ワードパッドまたはnotepad++でファイルを開いてみてください。これらは、行末として\nを尊重します。メモ帳は、\ r\n行末が必要な数少ないツールの1つです。

于 2012-06-15T22:27:24.853 に答える