PHP文件编码格式本地vs上传

PHP文件编码格式本地vs上传,php,encoding,Php,Encoding,这是我在在线部署应用程序时遇到的两个问题,我两次偶然解决了这个问题,但仍然不知道是什么导致了这个问题。这已经是第三次了,但它仍然困扰着我 我在本地使用PHP文件和Notepad++(文件以UTF-8编码,没有BOM编码的btw)。这里的一切都很好(config:easyPHP),没有PHP错误 将文件上传到服务器后,有些文件会给我一些基本的PHP错误,如第1行中的*意外T_函数*,尽管我的代码中没有错误 幸运的是,我碰巧用windows记事本打开了这个文件,它给了我一个提示:字符之间没有空格或换

这是我在在线部署应用程序时遇到的两个问题,我两次偶然解决了这个问题,但仍然不知道是什么导致了这个问题。这已经是第三次了,但它仍然困扰着我

  • 我在本地使用PHP文件和Notepad++(文件以UTF-8编码,没有BOM编码的btw)。这里的一切都很好(config:easyPHP),没有PHP错误

  • 将文件上传到服务器后,有些文件会给我一些基本的PHP错误,如第1行中的*意外T_函数*,尽管我的代码中没有错误

  • 幸运的是,我碰巧用windows记事本打开了这个文件,它给了我一个提示:字符之间没有空格或换行符(这就是PHP给我错误的原因)。总而言之:

  • 用记事本++打开的文件:

    <?php
    // Comment
    function() { etc... (rest of the file)...
    
    <?php//comment function(){ ... which causes error online (but not on EasyPHP)
    

    如果您通过FTP将文件传输到生产服务器,则问题可能是某些FTP客户端执行自动换行转换。。查看使用不同的ftp客户端传输文件,或调整其设置以禁用自动ascii文本新行转换

    更新:

    是的,可能是您的文件正在以ascii模式而不是二进制模式传输,因此解决方案是将Filezilla设置为以二进制模式传输您的文件,请参见此处的实际设置

    如何上载文件(ftp、http上载)?PS:我目前唯一的临时解决方案是删除损坏的文件,复制和另一个工作的PHP文件,重命名它,重新键入重写或复制粘贴我的代码,这显然不是一个持久的解决方案。@Jeff我正在用FTP中的FileZilla上载文件,并尝试使用被动和主动模式。我这样做,使用了不同的FTP UTIL。我不认为这是问题所在,因为如果文件是用Notepad++打开的,我注意到我的计算机上已经存在差异(没有任何上传),如果文件是用Windows Notepad打开的,则结束。此外,并非所有文件都有此问题(如800上的3)。