2010-03-28 89 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(); 
?> 

在你的頭文件的頂部。