非陈旧的数组转储?

时间:2011-10-03 19:58:29

标签: php arrays dump

我通常使用var_dump()来转储我的数组的内容,以便评估结构。然而,这变得乏味,因为更大的转储,信息遍布我的23英寸屏幕,因此很难轻易找出哪些关键匹配哪个值。

无论如何都要将数组的内容垂直转储,类似于PHP手册使用的方式:

Array
(
    [a] => apple
    [b] => banana
    [c] => Array
        (
            [0] => x
            [1] => y
            [2] => z
        )
)

我真的很想知道,因为这会节省很多时间。

任何意见/建议/答案将不胜感激;)!!

7 个答案:

答案 0 :(得分:6)

如果你想要一个非古老的调试,var_dump,echo和其他内联数据显示不是最好的方法,xdebug和支持调试的IDE(netbeans,eclipse,aptana,...)是

但是,通过在它之前回显pre标记,可以大大提高var_dump的可读性:

function dump($var)
{
   echo '<pre>';
   var_dump($var);
   echo '</pre>';
}

(请注意,您可以通过显示页面的来源而不是html呈现来获得相同类型的结果)

答案 1 :(得分:1)

就个人而言,我使用自定义debug()函数和<pre>

function debug($val) {
    if (defined('DEBUG') && DEBUG) { // So debugging won't show on live.
        // Turn off debugs via debug=0 in url.
        if(!@$_REQUEST['debug'] && @$_REQUEST['debug'] !== 0){ // Can see a clean page by again by just appending a url parameter.
            $vals = func_get_args();
            foreach($vals as $val){
                    echo "<pre class='debug' style='font-weight:bold;font-size:1.1em;background-color:white;color:black;position:relative;z-index:10;clear:both;max-width:980px;overflow:auto'>";
                var_dump($val);
                echo "</pre>";
            }
        }
    }
}

您可能还想查看http://xdebug.org/ Xdebug,它会格式化var_dumps以供html查看。我过去也曾经使用过它。

答案 2 :(得分:0)

浏览器中的“查看来源” 或

echo '<pre>'; var_dump($var); echo '</pre>';

答案 3 :(得分:0)

问题是PHP使用换行符而不是'br'元素格式化数组。由于默认Content-typetext/html,浏览器会忽略换行符,因此您看不到它们。

有两种解决方案:

  1. 查看页面来源
  2. 将内容类型设置为text/plain

    header('Content-type: text/plain');
    var_dump($some_array);
    

答案 4 :(得分:0)

echo '<pre>'.print_r($myValue, true).'</pre>';

答案 5 :(得分:0)

此外,可以安装FirePHP并将调试信息发送到浏览器中的firebug,如下所示:FB::log('Log message');

答案 6 :(得分:0)

Xdebug可以用格式良好/着色的HTML替换var_dump()的纯文本输出。见http://xdebug.org/docs/display