使用Xampp为Wordpress设置ChromePhp

时间:2012-03-31 20:50:57

标签: php xampp chromephp

我发现ChromePhp可以帮助我调试PHP并安装相关的Chrome插件,但我似乎无法让它工作。我最初将它放在我重定向的htdocs的一个文件夹中,并使用以下内容将其添加到xampp的php.ini中的PHP路径中:

; Windows: "\path1;\path2"
include_path = ".;C:\xampp\php\PEAR;D:\htdocs\includes"

这似乎不起作用每当我尝试包含文件并输出ChromePhp::log("message")

时,我都会遇到类似下面的错误
  

警告:无法修改标头信息 - 已在D:\ htdocs \ ask.ca \ wp中发送的标头(输出从D:\ htdocs \ ask.ca \ wp-admin \ menu-header.php:91开始) - 包括第385行的ChromePhp.php

然后我在我的Windows路径中尝试了类似的方法,结果相同。

最后我完全是本地的,并试图将ChromePhp.php文件包含在我的插件中:

include( dirname(__FILE__) . '/php/ChromePhp.php' );
ChromePhp::log("Hello World");

但我仍然得到同样的错误???任何人都可以解释ABC让ChromePhp工作吗?我说ABC显然是因为尽管我阅读了ChromePhp的网站说明(和其他人一起工作以便让这个工作起来),但是我觉得很简单,我还需要更多的芝麻街解释。

6 个答案:

答案 0 :(得分:5)

我是ChromePHP的开发者。您正在看到此问题,因为输出已在页面上启动。只要你回复一些东西,你就不能再设置标题了。

查看此相关票证:
https://github.com/ccampbell/chromephp/issues/15

我不确定Wordpress的内部工作方式,但基本上你必须在任何输出发送到页面之前记录信息,或者你必须使用输出缓冲来防止输出和然后在完成记录后刷新缓冲区。

此外:
http://wordpress.org/support/topic/error-cannot-modify-header-information-2

答案 1 :(得分:1)

如果您无法更改代码以使Chrome PHP正常运行,则可以使用PHP Console。即使输出已经开始,它仍然有效。消息将转到Chrome的控制台和弹出窗口。您可以通过右键单击上下文菜单来配置弹出窗口。

没有冒犯ChromePHP。我也很欣赏人们喜欢ChromePHP和PHP控制台的作者。

答案 2 :(得分:1)

如果您只是想在控制台而不是在屏幕上调试数据。

// Debug $data will display in console
function console_debug( $data ) {
    $data = json_encode($data);
    echo "<script>console.dir($data)</script>";
}

答案 3 :(得分:1)

您可以使用WP Chrome Logger插件,该插件基于chromephp

下载此插件并将其激活。

使用任何函数(在下面的示例中)在chrome控制台中输出任何内容(将这些函数放在plugin filefunctions.php中)。

ChromePhp::log('Hello console!');
ChromePhp::log($_SERVER);
ChromePhp::warn('something went wrong!');

使用WP 3.8进行测试

答案 4 :(得分:0)

这对我有用。

在ChromePhp.php的第378行添加@:

在─&GT;

标题(self :: HEADER_NAME。':'。$ this-&gt; _encode($ data));

之后 - &gt;

@header(self :: HEADER_NAME。':'。$ this-&gt; _encode($ data));

答案 5 :(得分:0)

我试过@Ravs插件,但是在我的生活中无法让它工作。尽管路径很好,仍然保持路径错误。

在内部查看并查看网络上的其他评论之后,我采取了稍微冗长的蜿蜒路线,只需将ChromePhp.php投入与文件相同的目录并添加

<?php
ob_start(); 
include 'ChromePhp.php';

...
ChromePhp::log('long winded but it works');
...

ob_flush();
?>