【问题标题】:What is the best way to catch extraneous output with PHP?用 PHP 捕获无关输出的最佳方法是什么?
【发布时间】:2011-02-14 02:19:02
【问题描述】:

我正在建立一个网站,我一生都无法分辨这个字符(显示无效代码点的 Unicode 符号)是如何被添加到我的页面的 一些(文章)的(在文档类型之前) )。

我已经搜索了该网站的程序流程,但没有找到任何东西。只有一个echo,它在发送headers后回显请求的响应。

我正在使用 Kohana 3,但我认为它与我的要求不太相关(我与 Kohana 合作多年,从未遇到过这个问题,我怀疑它与框架相关)。

我查看了我的 application/ 文件夹中包含的所有 PHP 文件,它们看起来很正常。

Request::instance()->execute() 是我的bootstrap.php 中的输出来源(用echos 包装调用证明了这一点)。 articles.php 控制器没有输出,模型或父控制器都有。

我可以使用哪些方法来查找此输出?

【问题讨论】:

  • 你能发一个给你带来麻烦的网址吗?
  • @BoltClock 抱歉,我的 Unicode 代码点块在我发布时被吃掉了。
  • 也许是BOM issue
  • @Brad 是的,work in progress though... :)
  • 听起来断点堆是隔离源的最佳选择。

标签: php


【解决方案1】:

我在我的 IDE (Coda) 中打开了显示不可见字符,并看到了这个可爱的,嗯,红色的东西

我使用了可靠的退格,现在它消失了! :D

我不知道它是如何到达那里的......

【讨论】:

  • 哈,我把它交给你,很好的发现:P
【解决方案2】:

我怀疑这可能是令人讨厌的字节顺序标记(正如 deceze 在他的评论中所说)。尝试将您的 PHP 脚本保存为没有 BOM 的 UTF-8,看看是否有帮助。如果您看到的未知代码点符号可能与您的页面被提供为 ISO-8859-1 而不是 UTF-8 有关。

【讨论】:

  • 感谢 BoltClock。我在标头中将字符集指定为 UTF-8,因此它应该适用于 UTF-8。我会考虑在没有 BOM 的情况下保存文件(尽管我仍然不确定 哪个 文件是害虫)。
  • 我正在使用 Coda,看起来我只能保存为 UTF-8(BOM 没有选项)。
  • @alex:好的,我检查了,Coda 1.7 保存时没有 BOM,所以这是正确的方法。我通过创建一个新的 PHP 文件、保存它、从我的 PC 连接到我的 Mac 并使用 Notepad++ 打开文件来验证这一点,它区分了带和不带 BOM 的 UTF-8。
  • @alex: 1.6 应该是一样的。
  • @BoltClock 所以这不是 BOM 问题?
猜你喜欢
  • 1970-01-01
  • 2014-02-02
  • 1970-01-01
  • 2010-11-25
  • 2019-08-20
  • 2012-02-25
  • 1970-01-01
  • 2013-04-21
  • 1970-01-01
相关资源
最近更新 更多