【问题标题】:Where do you include FirePHP in Wordpress?您在 Wordpress 中的哪个位置包含 FirePHP?
【发布时间】:2011-02-01 18:22:44
【问题描述】:

我在 header.php 中使用 require_once() 来包含 FirePHP 库。在page.php中我做的是平常的...

$firephp = FirePHP::getInstance(true);
$firephp->log($categories);

遇到这些错误..

'Headers already sent....'

Cannot send log data to FirePHP. You must have Output Buffering enabled via ob_start() or output_buffering ini directive...

我认为在模板的 header.php(首先是 HTML 输出)中使用 require_once 是安全的(预标头输出)。估计不是这样的。

有人有这方面的经验吗? (P.S. 我试过 WP FirePHP 插件,不正常)

【问题讨论】:

  • 你是指哪个header.php,模板中的那个?

标签: wordpress firebug firephp


【解决方案1】:

FirePHP 使用输出标头将调试数据传输到浏览器。所以require_once() 语句不是问题,而是您登录page.php 的事实,此时已经输出了HTML。您不仅需要在发送任何内容之前包含 FirePHP - 您还需要在发送内容之前进行所有日志记录。

通常的解决方法是使用输出缓冲和ob_* 系列函数将任何输出保存到浏览器。即使echo() 命令(和类似命令)已经发出,您也可以发送标头。

我猜想安全地做这一切就是 WP_FirePHP 插件的用途。我建议再看看那个插件。

【讨论】:

  • 在 php.ini 中将 output_buffering 指令更改为 On 对我有用。 (我也在使用 Wordpress 的 wp-firephp 插件)
  • 显然在 wordpress 管理部分它会清除标题和/或ob_* 的内容,所以这有时会破坏 FirePHP
【解决方案2】:

<?php
require_once(/FirePHPCore/FirePHP.class.php');
ob_start();
?>

在头文件的顶部。

【讨论】:

    猜你喜欢
    • 2015-09-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-01-04
    • 1970-01-01
    • 1970-01-01
    • 2011-01-06
    • 1970-01-01
    相关资源
    最近更新 更多