2010-03-28 88 views
1

我在header.php中使用require_once()来包含FirePHP库。在page.php文件我做平常...你在哪里包括FirePHP的WordPress?

$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... 

我想通使用require_once在模板头中.php(高于所有HTML输出)将是安全的(预标题输出)。猜猜并非如此。

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

+0

你的意思是哪一个header.php,模板中的那个? – 2010-03-28 15:16:49

回答

1

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

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

我猜测,安全地做这一切是WP_FirePHP插件的目的。我会建议再看看那个插件。

+0

好的,我非常感谢! – 2010-03-28 19:27:44

+0

在php.ini中将output_buffering指令更改为On对我来说有诀窍。 (也是我使用WordPress的wp-firephp插件) – leeand00 2011-02-01 00:05:31

+0

显然,在WordPress的管理部分,它将清除头文件和/或ob_ *的内容,所以这有时会出现中断FirePHP – cwd 2011-10-16 23:17:25

1

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

在你的头文件的顶部。