0

我正在一个网站上工作,我暂时在这里托管。

你会注意到我在每一页开头看到的神秘字母“a”。我浏览了所有的 php 文件(控制器、视图、模型),但找不到这封信的来源。另一个令人好奇的是,当使用 Firebug 检查时,所有头部内容都没有驻留在头部标签中。它出现在正文标签中,但它仍然可以正常工作。这两个问题有关系吗?

我在互联网上搜索的唯一发现是,可能某些文件已保存为 ANSI 而不是 UTF-8。我已经尝试使用我的编辑器将我所有的 php 文件“另存为”为 UTF-8,但这是一个非常缓慢的过程。任何调试这种情况的帮助将不胜感激。

编辑-感谢您的回复,@erman-belegu。它似乎不在任何控制器中。例如,我设置了一个 404 重定向,它有自己的控制器和视图。视图如下所示:

<!DOCTYPE html>
      <html>
      <head>
         <meta name="description" content="No Page">
      </head>
      <body>
         <h1>No page dude.</h1>
      </body>
    </html>

但是当用萤火虫检查时,它看起来像这样:

  <html>
    <head></head>
    <body>
      a
      <meta content="No Page" name="description">
      <h1>No page dude.</h1>
    </body>
  </html>

我已经使用 UTFCast 对所有内容进行了编码,但仍然遇到同样的问题。欢迎任何帮助。

4

2 回答 2

0

在开始时检查您的控制器,或者在某处进行任何打印。检查这些页面上的所有代码,因为您打印了这些“a”。

也使用没有 BOM 的 UTF-8。但是,我认为您不小心打印了它,并且不认为这是由于任何其他原因而发生的。

于 2013-07-15T09:14:06.617 回答
0

您会在 body 标记内看到 head,因为神秘的“a”是您输出的第一个字符。它由浏览器的渲染引擎或萤火虫放在 body 标签内。

如果你找到了“a”的原因——几乎可以肯定是 PHP 标记之外的一些内容——在 firebug 中头部将恢复正常。

搜索“a”很棘手。我不确定您的代码库有多大,但我会说在发送输出之前退出进程开始。您应该只看到“a”。然后一步一步移动出口,直到你的“a”消失,你就会找到它。

于 2013-07-15T21:00:09.503 回答