将文件从一个服务器移动到另一个服务器后,已发送的标头

时间:2010-06-16 18:48:36

标签: php encoding apache2

我有一个在dreamhost托管上运行的项目,它工作正常,但由于DH变得非常慢,我正在将项目移动到我的新专用服务器。

问题是,在我将所有文件移到新专用(ubuntu 8.4)之后,我会看到整个地方的警告告诉我标题已经发送。

我尝试的第一件事是通过FTP移动文件:下载到我的机器,上传到服务器 - 没有工作

第二次尝试是tar.gz第一台服务器上的文件夹,并在新服务器上解压缩它,也没有用过

我尝试过加入ANSI并且他们开始工作,但是我的大多数文件都包含重音符号因此ANSI不是我所有文件的选项我需要UTF8

有关如何解决此问题的任何想法?我确定它必须是某种配置

2 个答案:

答案 0 :(得分:2)

  1. 如果从utf-8更改为'ansi'使其工作,您的文件中有一个UTF8-BOM:通过使用十六进制编辑器(大量工作)或使用理解的编辑器删除它们(或者可以配置)不要将utf8-BOM放在那里。你通常不会在编辑器中看到这些字符,所以有效地似乎在<?php之前没有输出。请参阅:http://en.wikipedia.org/wiki/Byte_order_mark
  2. 作为临时修复,您可以将。output_buffering设置为.htaccess / php.ini中的On设置为始终缓冲,直到您修复了所有文件。

答案 1 :(得分:1)

在任何文件上关闭?>后检查新行字符的空格。

此外,您所说的警告实际上会告诉您输出开始的文件和行,因此它为您提供了开始寻找的位置......