文件编码似乎破坏了编辑过的PHP文件

时间:2017-11-08 09:02:52

标签: character-encoding ftp phpstorm

我有一个用BlueHost托管的WordPress网站。当我FTP到服务器,编辑WordPress主题文件并重新上传时,我得到一个白屏,出现以下错误

  

解析错误:语法错误,意外'}'   /home/challey3/public_html/wp-content/themes/challengers/page-invoice-payment.php   在第1行

代码正在直接下载到我的硬盘驱动器并使用PhpStorm进行编辑,我注意到当我在PhpStorm中打开文件时,每行代码之间还有一个空白行,而附加行不存在时通过记事本编辑。

对代码的更改是在HTML中添加了一个jQuery代码段,并且没有对PHP本身进行任何修改。撤消添加代码段和重新上传具有相同的效果,但是,如果我执行Git还原并重新上传问题已解决。

我唯一能想到的是,通过PhpStorm / Windows对文件进行不同的编码,然后将其上传回服务器就会有所破坏。服务器正在运行Ubuntu。

1 个答案:

答案 0 :(得分:1)

PhpStorm在传输(上传或下载)期间不会修改文件..因此它必须是服务器端(FTP)设置。

据我所知,该文件中使用的行结尾+特定的FTP服务器配置。

我的假设(基于个人使用2个已经过的"破坏"网站+来自其他用户的信息的个人经验)是在上传期间 FTP服务器对CR做出反应(用作行结束符号 - CRLF是Windows使用的)并尝试"修复"通过LF替换它。

FTP服务器可能只是做错了 - 而不是替换整个CRLF,而只是在CR上进行..所以你可能只是以LFLF结尾(2) Unix风格的行结尾 - 第二行使得额外的空行)。

如果我更正 - 尝试在IDE中转换该文件,先使用Unix样式LF作为行分隔符(通过状态栏(编码旁边)或{ {1}})。

无论如何:这是PhpStorm的问题跟踪器中的票证 - 也许有一天他们可以提供更好的解决方案:https://youtrack.jetbrains.com/issue/WI-9103 - 观看它(明星/投票/评论)以获得通知任何进展。