这是一个问题,我在网上部署应用程序时已经有两次,而且我已经偶然解决了两次,但仍然没有理解导致问题的原因。这是第三次,它仍然困扰着我。
我在本地使用PHP文件和Notepad ++(文件以UTF-8编码,没有BOM编码顺便说一句)。这里的一切都很好(config:easyPHP)没有PHP错误。
将文件上传到服务器后,有些文件会给我一些基本的PHP错误,例如第1行*中的*意外T_FUNCTION,尽管我的代码中没有错误。
我幸运的是碰巧用Windows Notepad打开文件给了我一个提示:字符之间没有空格或换行符(这就是PHP给我错误的原因)。总结一下:
使用Notepad ++打开文件:
<?php
// Comment
function() { etc... (rest of the file)...
使用Windows记事本打开文件:
<?php//comment function(){ ... which causes error online (but not on EasyPHP)
我到处寻找并尽我所能(在记事本++中添加换行符,转换为ANSI / UTF8等,但文件似乎已损坏或其他东西)。它不是我复制粘贴的脚本或任何东西,我通过在Windows中添加新的* .txt文档并将其重命名为* .php来创建我的所有文件。
我的问题:
如果没有,请提前感谢您的回答,提示。
答案 0 :(得分:2)
如果您通过FTP将文件传输到生产服务器,那么问题可能是某些ftp客户端进行自动换行转换..检查使用不同的ftp客户端传输文件或调整其设置以禁用自动ascii文本新行转换。< / p>
<强>更新强>
是的,可能你的文件是以ascii模式而不是二进制模式传输的,所以解决方法是将Filezilla设置为以二进制模式传输文件,请参见实际设置https://stackoverflow.com/a/555003/352672