如果我用PHP打印,它会用垃圾打印数组

如果我用PHP打印,它会用垃圾打印数组,php,Php,如何以树状格式打印数组--使其更易于阅读?我发现按如下方式打印是个好主意 printf("<pre>%s</pre>", print_r($array, true)); $my_var = new StdObject(); // or whatever Zend_Debug::dump($my_var); die; // optional, prevents routing, forwarding away, etc. printf(“%s”,print_r($ar

如何以树状格式打印数组--使其更易于阅读?

我发现按如下方式打印是个好主意

printf("<pre>%s</pre>", print_r($array, true));
$my_var = new StdObject(); // or whatever
Zend_Debug::dump($my_var); 
die; // optional, prevents routing, forwarding away, etc.
printf(“%s”,print_r($array,true));

它可能并不理想,但更易于阅读。

是否将输出包装在
标记中?这应该会得到相当不错的输出,因为它会显示空格。另一种选择是安装扩展,然后可以安装扩展,以便生成更可读的HTML输出

Mabe网页中的输出看起来像垃圾。尝试查看页面的源代码,我想它将以树状格式出现。

尝试:

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

pr($myArray);

它将为HTML的空白策略提供适当的树结构。

函数pr($var)
{
打印“”;
打印(htmlspecialchars($var));
打印“”;
}
pr($myArray);
试着看看Zend框架中的一个相对即插即用的模块,它在有效转储复杂变量方面做得非常好

用法:


我可以建议使用
var\u export($array)

它使用可解析的php语法格式化值

即使您忘记输出
标记, 虽然看起来不太容易,
它的输出仍然比打印非正式的一堆数据更有意义。

正如许多人之前提到的,一定要用
标签包装它


我会采取额外的预防措施,以确保没有任何东西包装
,例如
带有CSS类,可以覆盖Pre的样式。您可以将其打印到错误日志中:


请注意,您将看到\n而不是回车,因为它必须折叠成一行。

请注意,
print\r
以纯文本而不是HTML打印。因此,您需要查看源代码以查看原始输出。您需要第二个参数print_r为布尔真,以便它返回值,而不仅仅是将其打印出来。xdebug需要+1。替换的
var\u dump
非常好地支持阵列,几乎完全不需要
print\r
htmlspecialchars
请。好的,所以安全性不是调试代码的问题(尽管一定要摆脱您应该始终保持的习惯),而是任何“
函数pr($var){print'.”htmlspecialchars(print_r($var,true))。”;}
作为附录,我会指出,
提供更一致(树状)的结果(尽管我还没有研究原因)
$my_var = new StdObject(); // or whatever
Zend_Debug::dump($my_var); 
die; // optional, prevents routing, forwarding away, etc.
error_log(print_r($myarray,1));