【问题标题】:How to remove excess whitespace added to code by FTP program?如何删除 FTP 程序添加到代码中的多余空格?
【发布时间】:2008-11-23 16:35:46
【问题描述】:

这种情况反复发生,非常烦人。我将一些 PHP 代码上传到客户端的服务器。几个星期过去了。他们要求进行更改,我重新下载代码,因为他们已经进行了一些更改。但是,我上次查看时曾经整洁的代码现在到处都添加了额外的空白行。所以现在我在一些代码之间有两行空格,现在有 3 行。我有一堆行粘在一起,因为它们是同一个 for 循环或类似的一部分,它们现在都分散在周围,没有办法区分它们。

是否有任何程序/实用程序可以解决此问题?

【问题讨论】:

  • 感谢大家的回答,让我澄清一下。我在 windows 而不是 unix 上开发,但这可能是你们所接受的二进制传输。以后我会要求我的客户以二进制模式传输,但现在我的问题仍然存在:如何修复已经损坏的文件?

标签: php ftp whitespace


【解决方案1】:

以二进制模式而不是 ascii 模式上传。 Ascii 模式正在将所有换行符(unix 行尾字符)更改为回车 + 换行符(Windows 行尾字符)。

【讨论】:

  • 您可能是对的,以后我会要求他使用二进制文件。但是,如何修复已经损坏的文件?
  • @Annoyed - 我在 gvim 中输入“%s/^V^M/^V^M/g”(其中 ^ 表示控制字符)。
【解决方案2】:

当您使用空格时(您使用的是空格,对吗?),您可能还会在使用制表符的其他编辑器中遇到问题。在 Linux/OSX 和 Windows 上的开发人员之间共享源代码时,我遇到了类似的问题。

【讨论】:

    【解决方案3】:

    我敢打赌这是由于系统试图将在 Windows 系统中创建的文本文件转换为 Unix/Linux 系统正在使用的文件(然后再转换回来)。

    Windows 使用回车和换行,我认为 Unix 只使用换行(或者是回车)。

    我使用 Ultra Edit 作为我的主要文本编辑器(不是 Emacs 和 vi 不规则 :o),它有 DOS 模式和 Unix 模式来处理这类事情。

    【讨论】:

      【解决方案4】:

      强制您的客户端以二进制模式传输所有文件。 当您的文件中有 unicode 文本时,这也很有用,您永远不知道文本模式可能会做出什么假设!

      【讨论】:

        【解决方案5】:

        我猜,我会说您是在 Unix/Max 系统上开发,但客户是在 Windows 系统上运行(反之亦然)。我还猜想您正在以二进制模式上传/下载文件。 Windows 编辑器可能正在将 Unix LF 转换为 LF/CR 对,您的编辑器会将其视为两个新行。 如果您以 ASCII 模式上传和下载,文件将自动在两种格式之间转换。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2012-10-17
          • 2017-12-16
          • 2016-05-19
          • 1970-01-01
          • 2023-01-16
          • 1970-01-01
          • 2019-03-03
          相关资源
          最近更新 更多