我的网站有一个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
我已经用Google搜索了这个错误,并且我遇到的所有答案都详细说明它是PHP短标记问题(将<?
替换为<?php
,但文件确实存在不包括任何短标签)或文件中某处的迷路支架(但我检查过并且所有支架都正确匹配)。此外,我没有触及源本身,只是在打开文件后保存文件,所以既然它在本地Windows保存之前而不是之后工作,我不得不相信它是Windows和Unix之间的行结束问题。
更令人费解的是,我能够创建一个名为test.php
的{{1}},并将其保存在Windows中并上传,当我从我的内部调用它时页面正确加载网页浏览器。问题必须与Notepad ++如何将基于Unix或Mac的行结尾的非Windows创建文件转换为Windows行结尾有关,并且它会以某种方式被破坏。
有什么想法吗?如果我省略了任何内容,我会尝试提供更多信息,但我真的认为这里不需要来源。
答案 0 :(得分:1)
尝试在filezilla客户端中将传输类型设置为BINARY而不是TEXT。这可能是传输编码而不是记事本++的问题,因为我之前遇到过类似的问题,这是通过强制转移到二进制来解决的。