2009-10-03 25 views

回答

13

嘗試:

<pre><?php print_r($var); ?></pre> 

這將得到正確的樹結構HTML的空格政策修剪出來。

+0

作爲附錄,我會指出,我發現'

'給出了更一致的(樹狀)結果(儘管我沒有研究過*爲什麼*) – 2009-10-04 14:21:30

2

,我發現這是對的print_r如下

printf("<pre>%s</pre>", print_r($array, true)); 

它可能不是理想的一個好主意,但它更容易閱讀。

+1

您需要將print_r的第二個參數設置爲布爾值true才能返回值,而不是將其打印出來。 – Marko 2009-10-03 22:44:15

+0

是的!那就對了。 – pavium 2009-10-03 22:49:17

12

你是打包在<pre>標籤的輸出?這應該會讓你有相當不錯的輸出,因爲它會顯示空格。另一個選擇是安裝xdebug擴展,然後可以replace var_dump,以便它生成更可讀的HTML輸出。

+4

+1 for xdebug。它提供的替代'var_dump'非常好地支持數組,幾乎完全不需要'print_r'。 – 2009-10-03 22:44:23

0

Mabe輸出看起來像網頁中的垃圾。嘗試查看頁面的源代碼,並且它將以樹狀格式呈現,我想。

3
function pr($var) 
{ 
    print '<pre>'; 
    print_r(htmlspecialchars($var)); 
    print '</pre>'; 
} 

pr($myArray); 
+1

'htmlspecialchars'請。好的,所以安全性並不是調試代碼的問題(儘管逃避你應該始終擁有的習慣),但是變量中的任何'<'字符都會混淆輸出。 – bobince 2009-10-04 00:09:32

+3

'function pr($ var){print'

' . htmlspecialchars(print_r($var, true)) . '
'; }' – eyelidlessness 2009-10-04 02:50:06

1

嘗試採取看看Zend_Debug,從Zend框架,在有效傾銷複雜的變量做了出色的工作相對插件和播放模塊。

用法:

$my_var = new StdObject(); // or whatever 
Zend_Debug::dump($my_var); 
die; // optional, prevents routing, forwarding away, etc. 
0

可能我建議使用var_export($array)

它格式的可解析PHP語法值

甚至當你忘記輸出<pre></pre>標籤, 而對眼睛不是很容易, 其產量仍然更有意義則print_r非正式一堆數據。

0

正如許多人以前提到的那樣,請務必將其包裝在<pre>標籤周圍。

我會採取額外的預防措施,以確保沒有包裝是<pre>爲好,如<p><div>用CSS類,它可以覆蓋Pre的風格

1

你可以打印到錯誤日誌:

error_log(print_r($myarray,1)); 

請注意,您將看到\ n而不是回車符,因爲它必須在一行中摺疊。

0
print "<pre>"; 
print_r($var); 
print "</pre>"; 
+0

這實際上只是[現有的答案]的重複(https://stackoverflow.com/a/1515008)。 – Pang 2018-01-29 01:11:47