发生这种情况的原因是什么呢?飘易就以一句话概括下: 由于linux下换行是\n,而windows下换行是\r\n,当ftp软件在上传时,默认是以ASCII方式上传的,而ASCII方式上传文件有个特点,会将文件里的换行符进行适当处理以符合上传服务器的运行环境。在这个过程中,部分文件就会处理不当,出现换行符丢失的bug。(注意,不是全部php文件,是小部分的php文件会出现这个问题)。
上诉问题尤其在php源码里有单行注释符“//”时,会导致php源文件直接无法运行。因为源码变成了一行代码后,单行注释符把//后面所有的代码都注释掉了。
解决问题的核心关键词“二进制”
能造成代码换行的问题其实是因为这两款问题里的传输模式导致的,跟你的服务器以及控制面板是WDCP或者宝塔一点关系也没有!
FlashFXP的解决步骤
- 打开FlashFXP > 选项 > 参数选择 > 传输 > 传输模式选择“二进制(图像)” > 应用and确定
为了保全起见,把文件传输规则(也在选项的下拉)里的【只有续传文件才以二进制模式传输】前的勾取消掉
FileZilla的解决步骤
- 打开FileZilla,设置 > 传输 > FTP:文件类型 > 默认传输模式 > 二进制(B) > 确定
原先FileZilla是把这些重要文件用ASCII 模式传输的,就会唇出现换行问题。
FTP有ASCII和Binary(二进制)两种传输模式:
Binary模式不会对数据进行任何处理。
Ascii模式会将回车换行转换为本机的回车字符。
转载地址:https://blog.csdn.net/WeilaPls/article/details/82185443