0

当我上传一些 PHP 文件时,我遇到了一些奇怪的问题,即一些 php 文件有 cr+lf EOL 字符,有些有 CR,有些有 LF。
我正在使用 Win8、Filezilla、Notepad++ 和 PHPRunner 进行一些模板化工作(全部存储在保管箱同步文件夹中)。当我处理手工制作的 php 文件时,我有时使用 PHPRunner 来 ftp 文件,有时使用 Filezilla。

当我在 notepad++ 中打开文件时,似乎有时这些行尾会自行更改,我需要进行 notepad++->edit-EOL 转换才能将它们仅更改回 unix 样式。

所以这通常不会打扰我(除了它们随机变化的方式有点奇怪),但在 PHP 中,如果你 REQUIRE_ONCE 一个具有不同行尾的文件,它只会默默地失败,没有任何效果。所以我的问题是

1)这是 PHP 的预期行为,如果是,有什么方法可以在同一个源文件中接受不同的 EOL 编码?

2) 任何想法为什么我的 EOL 字符可能会被更改?是 Filezilla、notepad++ 还是 dropbox 或 PHPRunner 正在修补?(当我打开文件时,我从来没有看到它们更改的通知,只会在重新启动计算机时发生)

这有点谜所以想我会问是否有其他人可能遇到过这个

4

1 回答 1

0

Any number of applications like to change the line endings; it is considered useful behavior in many contexts. Ftp programs (etc.) have options to convert text files when transfering across systems. FTP's "ascii" mode, often the default for text files, enables automatic conversion. If you end up uploading some files with conversion and some without, you end up with an inconsistent collection.

Notepad++ might also be doing it; I don't use it so I can't say. The worst are programs that will insert their preferred line endings only for the lines you touch, leaving you with a file with inconsistent line endings. Sounds like you've been spared that, at least.

In short: Check the settings of every tool that touches your file, starting with Notepad++.

于 2013-10-07T12:22:05.310 回答