通过浏览器下载txt文件后缺少换行符


Newlines are missing after downloading txt file through the browser

我有一个在服务器上生成的txt文件,其中包含换行符。如果我在我的 ftp 编辑器中查看该文件,它们就在这里。如果我通过我的ftp客户端下载它并使用记事本在其中打开窗口,我也会看到换行符。

但是当我尝试通过浏览器强制下载窗口然后打开文件时,所有新行都突然消失了。

这是我现在拥有的代码。我还尝试将内容类型设置为应用程序/强制下载,但这也没有区别。

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

知道为什么只有当我通过浏览器下载新行时才丢失吗?但是当我在服务器上查看文件或从 ftp 下载并在记事本中打开时,它是否完好无损?

Unix 行尾 (')

与 Windows 行尾 (''r') 不同。许多FTP程序可以选择在操作系统之间自动转换行尾;您的浏览器没有执行此操作(浏览器不会触摸文本/纯文本。

如果你想双重确定,你可以十六进制转储文件并查看换行符应该在哪里。

尝试使用写字板或记事本++打开文件,它们将'视为行尾。记事本是为数不多的仍然需要 ''r' 行结尾的工具之一。