当查看保存在Windows中的相同文件时,PHP解析器错误


PHP Parser Error When Viewing Same File Saved in Windows

我有一个PHP文件为我的网站,index.php,其中,因为它站在服务器上,它工作正常,没有错误触发和页面加载应为。

服务器是运行Apache的Linux服务器,我的本地机器是Windows机器。我使用FileZilla Windows客户端下载index.php,并在Windows的notepad++中打开该文件。我将该文件保存在Windows中,然后在服务器上上传并覆盖该文件。页面现在无法加载,页面出现以下错误:

Parse error: syntax error, unexpected $end in /path/to/my/site/index.php on line 1

我已经谷歌这个错误相当多,和所有的答案,我遇到的细节,它要么是一个PHP短标签问题(用<?php代替<?,但文件不包括任何短标签)或一个迷失的括号在文件的某个地方(但我已经检查和所有的括号都正确匹配)。此外,我不碰源代码本身,只是在打开文件后保存它,所以因为它在本地Windows保存之前工作,而不是在本地Windows保存之后,我不得不相信这是Windows和Unix之间的行结束问题。

更令人费解的是,我能够创建一个名为phpinfo()test.php,并将其保存在Windows中并上传,当我从web浏览器中调用它时,页面正确加载。这个问题肯定与notepad++如何将非Windows创建的、基于Unix或mac的行结束符文件转换为Windows行结束符有关,并且不知何故它被破坏了。

任何想法?如果我遗漏了什么,我会尽量提供更多的信息,但我真的不认为这里需要源代码。

尝试在filezilla客户端中将传输类型设置为BINARY而不是TEXT。这可能是传输编码而不是notepad++的问题,因为我之前遇到过类似的问题,通过强制传输到二进制解决了。