views:

461

answers:

3

Xdebug displays "var_dump" in its own way with more useful information, but in Firebug is unreadable.

I was wondering if there was a way to display the var_dump in Firebug to make it readable without disabling xdebug and also keeping the display of the var_dump made by xdebug in PHP.

Examples of var_dump displayed in Firebug:

$test = array('id' => '42', 'name' => 'Mao');
var_dump($test);

Default :

array(2) {
  ["id"]=>
  string(2) "42"
  ["name"]=>
  string(3) "Mao"
}

Xdebug :

<pre class='xdebug-var-dump' dir='ltr'>
<b>array</b>
  'id' <font color='#888a85'>=&gt;</font> <small>string</small> <font color='#cc0000'>'42'</font> <i>(length=2)</i>
  'name' <font color='#888a85'>=&gt;</font> <small>string</small> <font color='#cc0000'>'Mao'</font> <i>(length=3)</i>
</pre>
+1  A: 

You can switch off Xdebug-var_dump()-overloading by setting xdebug.overload_var_dump to false. Then you can use var_dump() when you don't need the additional HTML-formatting and xdebug_var_dump() when you require a fully formatted debug output.

But as I wrote in my comment above, if you're using FirePHP, you can simply let FirePHP format the output in your Firebug console:

fb($variable, FirePHP::DUMP) // or
FB::dump('Key', $variable) // or
$firephp->dump('Key', $variable); // where $firephp is your FirePHP instance
Stefan Gehrig
FirePHP works fine, thanks.
MaoTseTongue
A: 

You can't have your cake and eat it too. The reason it looks pretty in your browser is because it's formatted with html which is why it looks 'unreadible' with firebug.

As S. Gehrig referred to, you can disable Xdebug's method of formatting var_dump() with the following line:

ini_set('xdebug.overload_var_dump', 0);

You can use this on-the-fly in your scripts to turn it on/off at will.

Mike B
A: 

Mike B's solution,

ini_set('xdebug.overload_var_dump', 0);

didn't work with my install.

But i can do this to supress the html :

ini_set( 'html_errors' , 0 );

immeëmosol