【发布时间】:2012-11-17 21:46:00
【问题描述】:
这是我在在线部署应用程序时已经遇到过两次的问题,我已经偶然解决了两次,但仍然不了解导致问题的原因。这是第三次了,还是很烦。
我在本地使用 PHP 文件和 Notepad++(文件以 UTF-8 编码,没有 BOM 编码 btw)。这里一切正常(配置:easyPHP),没有 PHP 错误。
将文件上传到服务器后,一些文件给了我基本的 PHP 错误,例如第 1 行中的 *unexpected T_FUNCTION*,尽管我的代码中没有错误。
幸运的是,我碰巧用 Windows 记事本打开了文件,这给了我一个提示:字符之间没有空格或换行符(这就是 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 来创建我的所有文件。
我的问题:
- 为什么 Notepad++ 和 windows 记事本会显示不同的换行符?是编码问题吗? Windows/UNIX 以不同方式解释文件?
- 为什么这可以在我的电脑上使用简单的 PHP 而不是在线?
提前感谢您的任何回答,如果没有,请提示。
【问题讨论】:
-
你如何上传文件(ftp、http 上传)?
-
PS:我目前唯一的临时解决方案是删除损坏的文件,复制另一个工作 PHP 文件并重命名它,然后重新键入重写或复制粘贴我的代码,这显然不是一个持久的解决方案。
-
@Jeff 我在 FTP 中使用 FileZilla 上传文件,并尝试同时使用被动和主动模式。