改进我的print_r算法

时间:2011-01-12 15:58:16

标签: php debugging

好吧,伙计们,这是一个简单的问题(不仅仅是一个问题,而是挑战)。

当我开发大型应用程序时,很难跟踪数组的工作方式(超过3个维度的数组,或包含数组的数组等等)

因此,PHP开发人员拥有print_r($ array)函数。如果您的数组不超过1维或几个变量,那么这个传递信息的格式就会有用...所以,我编写了一个小函数,使用一些CSS和HTML来解析数组(和数组的数组)。

我会为你分享这个功能,但更重要的是改进它,使它更友好(避免使用图像或那......只是一个不使用其他文件的简单功能) ,或者如果有什么东西(图书馆或功能)我不知道在这件事上有帮助吗?

提前致谢。

功能:

function print_a($array,$prefix = "")
{
    if(is_array($array))
    {
        foreach($array as $value => $valor)
        {
            echo "<tr>";
            echo " <td>";
            if(is_array($valor))
            {
                echo "<div style='background-color: #C7E792;height: 5px; width: 100%; padding: 5px;'><strong>ARRAY: $value</strong></div>";
                echo $prefix." ";
                print_a($valor,$prefix."&nbsp;&nbsp;> ");
            }
            else
            {
                if(!is_numeric($value))
                {
                    echo "<div style='background-color: #FFFFFF;height: 10px; width: 100%;'>";
                    echo $prefix;
                    echo "<b>".$value."</b> = ".$valor."<br/>";
                    echo "</div>";
                }
            }
        }
    } else { echo "It's not an array =( !"; }
}

2 个答案:

答案 0 :(得分:3)

我建议您尝试http://www.xdebug.org/。您可以自定义var_dumpprint_r输出的深度和样式。

答案 1 :(得分:3)

我建议使用Krumo。 Krumo可以满足您的所有需求。