2009-09-23 15 views
14

Xdebug wyświetla "var_dump" na swój własny sposób z bardziej użytecznymi informacjami, ale w Firebug jest nieczytelny.Nieczytelny var_dump w Firebug, gdy włączono xdebug

Zastanawiam się, czy istnieje sposób wyświetlenia var_dump w Firebug, aby uczynić go czytelnym bez wyłączania xdebug, a także utrzymywanie wyświetlania var_dump przez xdebug w PHP.

Przykłady var_dump wyświetlane w Firebug:

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

Domyślnie:

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

Co oznacza 'nieczytelny' oznacza? Brak danych wyjściowych? Zepsute wyjście? Brakujące kawałki? ... –

+0

Html są dodawane do var_dump, w Firebug trudniej jest odczytać wynik. – MaoTseTongue

+0

Czy używasz FirePHP?O ile wiem, FirePHP jest w stanie ładnie drukować obiekty i tablice PHP, więc nie ma potrzeby uruchamiania ich przez var_dump() –

Odpowiedz

9

można wyłączyć Xdebug- var_dump() -overloading ustawiając xdebug.overload_var_dump do false . Następnie możesz użyć var_dump(), gdy nie potrzebujesz dodatkowego formatowania HTML i xdebug_var_dump(), gdy potrzebujesz w pełni sformatowanego wyjścia debugowania.

Ale jak napisałem w moim komentarzu powyżej, jeśli używasz FirePHP, można po prostu pozwolić FirePHP formatować dane wyjściowe w konsoli Firebug:

fb($variable, FirePHP::DUMP) // or 
FB::dump('Key', $variable) // or 
$firephp->dump('Key', $variable); // where $firephp is your FirePHP instance 
+0

FirePHP działa dobrze, dziękuję. – MaoTseTongue

9

Mike B jest rozwiązanie,

ini_set('xdebug.overload_var_dump', 0);

nie działa z moją instalacją.

ale mogę to zrobić, aby wyciszyć html:

ini_set('html_errors' , 0);

+0

Twoje rozwiązanie sprawdziło się! –

4

ini_set('xdebug.overload_var_dump', 0); nie działa tutaj albo. ini_set('html_errors' , 0); działa, ale czasami może być bardzo powolny.

Jako prosty obejście można użyć to:

echo var_export($this); 

który jest tylko 7 naciśnięcie klawisza więcej niż normalny var_dump.

6

Ustawienie xdebug.overload_var_dump="0" w php.ini rozwiązało problem w moim przypadku.

Powiązane problemy