2009-10-03 83 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