PHP - @在每个页面之上

时间:2014-06-12 17:22:31

标签: php debugging

我的网站存在问题。在每个页面上,每页的顶部都有一个@,我没有写。

它似乎来自我的配置文件。实际上,如果我回复“测试”,我会以require_once('config.php')开始每一页。在require_once之前,我得到:

test @

但是如果我在require_once之后echo 'test',我会得到:

@ test

我使用Sublime Text(听说可能是编码错误,尝试使用Notepad++重新保存,没有任何更改)

不知道它可能是什么。

1 个答案:

答案 0 :(得分:1)

我已经发布过 - 并且已经多次处理过字符编码问题。通过测试@中的config.php,您了解echo 'test';来自require_once文件的行为不是编码问题。

如果这是编码问题,那么它将是页面顶部或页面底部的垃圾文本/字符,但无法以您描述的方式从这些位置移动。

config.php文件的某处,只有一个@浮动在那里:

  • @超出了PHP开放的范围。结束标记(<?php / ?>)。
  • 代码中的某些内容是故意echo @
  • 或者 - 这很棘手 - 但是根据config.php文件的复杂程度,它可能来自另一个通过require_onceinclude加载的文件config.php档案。

现在最简单的事情就是打开config.php文件&amp;搜索@字符。看看那个出现的每个实例&amp;它所在线的背景。如果你很幸运,你会发现看似奇怪的东西。

过去,现在最好的调试策略是在echo 'test';文件本身的其他地方执行相同的config.php

  • 位于config.php文件顶部的第一个位置&amp;加载页面。
  • 然后将其放在config.php文件的底部。加载页面。
  • 然后你可能不得不从一行到另一行去看看你是否能指出它。
  • 如果你必须从线到线,那么分开差异。转到config.php的中间并将echo 'test';放在那里。然后根据你看到的内容,继续放置在页面中间的上方或下方。

是的,这可能很乏味。但这是处理这种情况的最好方法。