0

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

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

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

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 程序都可以选择在操作系统之间自动转换行尾。您的浏览器没有这样做(浏览器不会触摸文本/纯文本。)

如果你想再三确定,你可以对文件进行 hexdump 并查看换行符应该在哪里。

尝试使用 wordpad 或 notepad++ 打开文件,它们将 \n 作为行尾。记事本是少数仍需要 \r\n 行尾的工具之一。

于 2012-06-15T22:27:24.853 回答