2012-06-15 126 views
0

我有一個txt文件,在服務器上生成幷包含換行符。如果我在我的ftp編輯器中查看該文件,他們就在這裏。如果我通過我的ftp客戶端下載它並用記事本打開窗口,我也會看到換行符。通過瀏覽器下載txt文件後換行符丟失

但是,當我嘗試通過強制下載窗口通過瀏覽器下載它,然後打開文件時,所有新行都突然消失了。

這是我現在的代碼。我也嘗試將內容類型設置爲應用程序/強制下載,但這也沒有什麼區別。

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

任何想法爲什麼只有當我通過瀏覽器下載新行時纔會丟失新行?但是當我在服務器上查看文件時,它是完整的,或者從ftp下載並在記事本中打開?

回答

2

Unix行尾(\ n)與Windows行尾(\ r \ n)不同。許多FTP程序可以選擇在操作系統之間自動轉換行尾;你的瀏覽器沒有這樣做(瀏覽器不會觸及文本/純文本)。

如果你想雙重確認,你可以hexdump文件,看看換行符應該在哪裏。

嘗試用wordpad或notepad ++打開文件,該文件尊重\ n作爲行結尾。記事本是少數仍然需要\ r \ n行結尾的工具之一。

+0

添加\ r是訣竅,但在下載的文件中出現換行符之前,我必須添加兩次。這是它現在的工作原理 - > \ r \ n \ r – tijmen