【问题标题】:If i do print_r in PHP, it prints the array in junk如果我在 PHP 中执行 print_r,它会将数组打印为垃圾
【发布时间】:2018-01-29 09:11:35
【问题描述】:

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

【问题讨论】:

  • 请注意,print_r 以纯文本而非 HTML 格式打印。所以你需要查看源代码才能看到原始输出。

标签: php


【解决方案1】:

试试:

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

它将给出 HTML 的空白策略修剪掉的正确树结构。

【讨论】:

  • 作为附录,我会指出,我发现 &lt;pre&gt;&lt;?php print_r($var,true); ?&gt;&lt;/pre&gt; 给出了更一致(树状)的结果(尽管我还没有研究 为什么 )
【解决方案2】:

您是否将输出包装在&lt;pre&gt; 标签中?这应该会给你带来相当不错的输出,因为它会显示空格。另一种选择是安装xdebug 扩展,然后可以replace var_dump 生成更具可读性的HTML 输出。

【讨论】:

  • xdebug +1。它提供的替换 var_dump 非常好地支持数组,几乎完全消除了对 print_r 的需求。
【解决方案3】:
function pr($var)
{
    print '<pre>';
    print_r(htmlspecialchars($var));
    print '</pre>';
}

pr($myArray);

【讨论】:

  • htmlspecialchars 请。好的,所以安全性不是调试代码的问题(尽管转义肯定是您应该始终拥有的习惯),但是变量中的任何“
  • function pr($var) { print '&lt;pre&gt;' . htmlspecialchars(print_r($var, true)) . '&lt;/pre&gt;'; }
【解决方案4】:

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

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

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

【讨论】:

  • 您需要 print_r 的第二个参数为布尔值 true 才能返回值,而不仅仅是打印出来。
【解决方案5】:

试试看Zend_Debug,这是一个来自 Zend 框架的相对即插即用的模块,它在有效转储复杂变量方面做得非常出色。

用法:

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

【讨论】:

    【解决方案6】:

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

    error_log(print_r($myarray,1));
    

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

    【讨论】:

      【解决方案7】:

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

      【讨论】:

        【解决方案8】:

        正如许多人之前提到的,请确保将其包裹在 &lt;pre&gt; 标记上。

        我会采取额外的预防措施,以确保没有任何东西包裹 &lt;pre&gt;,例如 &lt;p&gt;&lt;div&gt; 使用可以覆盖 Pre 样式的 CSS 类

        【讨论】:

          【解决方案9】:

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

          它使用可解析的 php 语法

          格式化值

          即使你忘记输出&lt;pre&gt;&lt;/pre&gt;标签, 虽然对眼睛不太好, 它的输出仍然比print_r 非正式的一堆数据更有意义。

          【讨论】:

            猜你喜欢
            • 2015-06-28
            • 2021-12-22
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2012-07-09
            • 2022-01-03
            • 2020-01-13
            • 1970-01-01
            相关资源
            最近更新 更多