使var_dump看起来很漂亮

Plu*_*mer 115 php arrays var-dump

我有一个简单的$_GET[]查询var set,用于在从DB下拉查询时显示测试数据.

<?php if($_GET['test']): ?>
  <div id="test" style="padding: 24px; background: #fff; text-align: center;">  
    <table>
      <tr style="font-weight: bold;"><td>MLS</td></tr>
      <tr><td><?php echo KEY; ?></td></tr>
      <tr style="font-weight: bold;"><td>QUERY</td></tr>
      <tr><td><?php echo $data_q; ?></td></tr>
      <tr style="font-weight: bold;"><td>DATA</td></tr>
      <tr><td><?php var_dump($data); ?></td></tr>
    </table>    
</div>
<?php endif; ?>
Run Code Online (Sandbox Code Playgroud)

当我这样做的时候var_dump,正如预期的那样,这个大阵列的字符串都被一起刷了.有没有办法至少为此添加换行符或var_dump以更可读的方式显示?我对jQuery有关在发布后操纵字符串的建议持开放态度.

Abr*_*ver 330

我真的很喜欢var_export().如果您喜欢复制/粘贴代码,请尝试:

echo '<pre>' . var_export($data, true) . '</pre>';
Run Code Online (Sandbox Code Playgroud)

或者甚至是这样的颜色语法突出显示:

highlight_string("<?php\n\$data =\n" . var_export($data, true) . ";\n?>");
Run Code Online (Sandbox Code Playgroud)

  • 请注意,`echo`,`var_export`和`highlight_string`都是php函数,需要在`<?php``?>`块中.是的,即使highlight_string函数行内部有一个<?php?>对,外部也需要一对. (5认同)
  • 这个答案中的获胜者具体是 `highlight_string("&lt;?php\n\$data =\n" . var_export($data, true) . ";\n?&gt;");`!!! (2认同)

Lat*_*san 38

试试php的xdebug扩展.

例:

<?php var_dump($_SERVER); ?>
Run Code Online (Sandbox Code Playgroud)

输出:

在此输入图像描述

  • 请注意,xdebug不仅仅是非常漂亮的var_dump :) (6认同)

Wae*_*saf 19

使用预先格式化的HTML代码

echo '<pre>';
var_dump($data);
echo '</pre>';
Run Code Online (Sandbox Code Playgroud)


Muh*_*ais 9

我对@AbraCadaver的答案做了补充.我已经包含了一个javascript脚本,它将删除php启动和结束标记.我们将有更干净漂亮的转储.

也可能是这样的人.

function dd($data){
  highlight_string("<?php\n " . var_export($data, true) . "?>");
  echo '<script>document.getElementsByTagName("code")[0].getElementsByTagName("span")[1].remove() ;document.getElementsByTagName("code")[0].getElementsByTagName("span")[document.getElementsByTagName("code")[0].getElementsByTagName("span").length - 1].remove() ; </script>';
  die();
}
Run Code Online (Sandbox Code Playgroud)

结果之前:

在此输入图像描述

结果之后:

在此输入图像描述

现在我们没有php启动和结束标记


zpe*_*ert 6

我似乎没有足够的代表来将其作为重复项关闭,但如果其他人可以做到这一点,那么它就是一个。我在A more beautiful/informative Var_dump replacement in PHP?上发布了同样的内容?但为了节省时间,我也将其复制/粘贴到此处:

我必须在这里添加另一个答案,因为我真的不想执行其他解决方案中的步骤。它非常简单,不需要扩展、包含等,这是我更喜欢的。这非常简单而且非常快。

首先对有问题的变量进行 json_encode:

echo json_encode($theResult);
Run Code Online (Sandbox Code Playgroud)

将您获得的结果复制到http://jsoneditoronline.org/上的 JSON 编辑器中,只需将其复制到左侧窗格中,单击“复制 >”,它就会以非常漂亮的树格式打印 JSON。

对于每个人来说,但希望这可以帮助其他人有一个更好的选择!:)


rav*_*ren 6

这是另一种积极维护的开源替代方案var_dump

https://github.com/php-sage/sage

它可以零设置工作,并且比 Xdebug 的 var_dump 和 symfony/var-dumper 更有用。

使用 Kint 绕过动态转储对象大小限制的示例:

     require 'sage.phar';
     +d( $variable ); // append `+` to the dump call
Run Code Online (Sandbox Code Playgroud)

这是一个屏幕截图:

金特