1
A
回答
3
FTP不太可能「將所有內容放在一條線上」。更有可能的是,該文件使用* nix風格的行結尾,並將文件以二進制模式上傳到Windows機器或類似的東西。
看到,不同的平臺有不同的字符序列來表示「新行」。在Windows中,這通常是CR
+ LF
,但在* nix上,它只是LF
。問題在於,很多軟件都假設有關結束文本文件的行應具有的內容,並且如果它看到LF
字符,則不會將其視爲換行符。因此,一切看起來都在一條線上。 (我並不認爲PHP對於行結尾是如此肛門,但是我已經看到了其他語言令人不安)。
二進制模式傳輸字節的文件字節,並且不會轉換行尾。如果你下載或上傳圖片或其他東西,這很好。但是,如果您在運行不同操作系統的計算機之間以二進制模式傳輸文本文件,則很可能會看到「不正確」行結尾的結果。
解決方案:對PHP文件使用ASCII模式。大多數FTP客戶端都可以設置使用哪種模式,甚至可以使用某種類型的文件使用哪種模式。由於PHP文件是文本文件,因此在大多數情況下,它們可能應以ASCII模式進行傳輸。
1
解決方案,爲我工作:
- 使用Atom.io編輯
- 安裝了Atom包line-ending-converter
- 開放Atom的文件>標記所有>點擊鼠標右鍵>轉換行結束> UNIX格式
- 保存文件並上傳到服務器(如果JS文件,在瀏覽器中打開,看是否換行,現在是正確的)
一些背景信息from here:
當下載了與文本/ ASCII模式Windows行結束(CR + LF)的文件時,服務器與CR + LF替換LF,導致不正確的CR + CR + LF。在WinSCP的內部編輯器中打開此文件時,編輯器會將該序列解釋爲兩行結束符(CR和CR + LF),從而在每條內容行之後產生一個空行。保存文件時,內部編輯器會保存兩個Windows行尾CR + LF和CR + LF。在上傳時,他們被轉換爲兩個LF。解決方法是使用外部編輯器並確保WinSCP不強制編輯文件的文本模式。
相關問題
- 1. 使用PHP通過FTP上傳文件
- 2. 通過FTP在php上傳文件
- 3. 通過PHP頁面上傳FTP上傳
- 4. FTP通過PHP上傳和下載
- 5. FTP多文件上傳PHP
- 6. 上傳文件丟失OutOfMemoryError
- 7. 通過FTP上傳文件片段
- 8. 上傳文件到通過FTP
- 9. Java - 通過FTP上傳文件夾?
- 10. 使用PHP通過FTP上傳實時文件
- 11. FTP文件上傳超時
- 12. 通過php上傳文件時出錯
- 13. 文件沒有通過PHP上傳
- 14. 通過PHP FTP上傳整個目錄
- 15. 使用PHP上傳一個文件夾通過FTP使用PHP
- 16. 在Mac上通過HTTP/HTTPS和/或FTP/FTPS上傳文件
- 17. 通過ftp上傳圖像
- 18. Ftp文件上傳
- 19. 通過php使用ftp細節上傳php文件正在執行php,而不是上傳原始php文件
- 20. 通過FTP上傳時執行腳本
- 21. 的Java:上傳文件到FTP問題(數據包丟失)
- 22. 當我通過curl工具上傳配置文件時,curl會失敗:(25)FTP上傳失敗:550
- 23. 使用php,JS&ajax通過ftp上傳文件
- 24. 上傳的文件與PHP無法通過FTP更改
- 25. 如何通過FTP上傳文件夾PHP
- 26. HTML/PHP/JS選擇多個文件並通過FTP上傳
- 27. 通過ftp上傳eclipse生成的php文件的問題
- 28. 使用PHP通過基於Web的ftp上傳文件
- 29. 如何在PHP中通過ftp上傳文件?
- 30. 如何通過FTP使用PHP上傳文件的URL?
嘗試將您的FTP工具設置爲二進制模式。 – Thilo 2012-03-26 04:39:10