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