繁体   English   中英

如果我在PHP中使用print_r,它会在垃圾中打印数组

[英]If i do print_r in PHP, it prints the array in junk

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

尝试:

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

它将提供HTML的空白策略修剪的正确树结构。

您是否将输出包装在<pre>标签中? 这应该会让你得到相当不错的输出,因为它会显示空间。 另一种选择是安装xdebug扩展,然后可以替换var_dump以便生成更易读的HTML输出。

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

pr($myArray);

我发现print_r是一个好主意,如下所示

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

它可能不太理想,但它更容易阅读。

试试看Zend_Debug ,它是Zend Framework中一个相对即插即用的模块,它可以很好地有效地转储复杂变量。

用法:

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

您可以将其打印到错误日志中:

error_log(print_r($myarray,1));

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

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

我可以建议使用var_export($array)吗?

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

即使你忘记输出<pre></pre>标签,虽然眼睛不是很容易,但它的输出仍然比print_r非正式的数据更有意义。

正如许多人之前提到的那样,确保将其包裹在<pre>标签周围。

我会采取额外的预防措施,以确保没有任何东西包装<pre> ,例如<p><div>与CSS类可以覆盖Pre的风格

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM