2009-09-23 17 views
14

Xdebug hiển thị "var_dump" theo cách riêng của nó với thông tin hữu ích hơn, nhưng trong Firebug là không đọc được.var_dump không thể đọc trong Firebug khi xdebug được bật

Tôi đã tự hỏi nếu có một cách để hiển thị var_dump trong Firebug để làm cho nó có thể đọc được mà không vô hiệu hóa xdebug và cũng giữ hiển thị của var_dump được tạo bởi xdebug trong PHP.

Ví dụ về var_dump hiển thị trong Firebug:

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

Mặc định:

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

không 'đọc' nghĩa là gì? Không có đầu ra nào cả? Sản lượng sai lầm? Phần còn thiếu? ... –

+0

Html được thêm vào var_dump, trong Firebug khó đọc đầu ra hơn. – MaoTseTongue

+0

Bạn đang sử dụng FirePHP?Theo tôi biết FirePHP có thể in các đối tượng và mảng PHP một cách dễ dàng để không cần phải chạy chúng thông qua var_dump() –

Trả lời

9

Bạn có thể tắt Xdebug- var_dump() -overloading bằng cách thiết lập xdebug.overload_var_dump để false . Sau đó, bạn có thể sử dụng var_dump() khi bạn không cần định dạng HTML bổ sung và xdebug_var_dump() khi bạn yêu cầu đầu ra gỡ lỗi được định dạng đầy đủ.

Nhưng như tôi đã viết trong nhận xét của tôi ở trên, nếu bạn đang sử dụng FirePHP, bạn có thể chỉ đơn giản là để cho FirePHP định dạng đầu ra trong Firebug console của bạn: giải pháp

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

FirePHP hoạt động tốt, cảm ơn. – MaoTseTongue

9

Mike B 's,

ini_set('xdebug.overload_var_dump', 0);

không hoạt động với cài đặt của tôi.

Nhưng tôi có thể làm điều này để ngăn chặn các html:

ini_set('html_errors' , 0);

+0

Giải pháp của bạn làm việc cho tôi! –

4

ini_set('xdebug.overload_var_dump', 0); không làm việc ở đây cả. ini_set('html_errors' , 0); không hoạt động nhưng đôi khi có thể rất chậm.

Là một workaround đơn giản bạn có thể sử dụng này:

echo var_export($this); 

Mà là nhiều hơn chỉ 7 keypresses hơn var_dump bình thường.

6

Đặt xdebug.overload_var_dump="0" trong php.ini giải quyết được sự cố trong trường hợp của tôi.

1

Bạn có thể sử dụng một sự thay thế:

http://raveren.github.io/kint/

Nó hoạt động với không thiết lập và có nhiều tính năng hơn nào Xdebug của var_dump.

Ảnh chụp màn hình:

Kint screenshot

Các vấn đề liên quan