我正在尝试理解落在我桌面上的OO PHP应用程序。当我执行大型数组的print_r
或var_dump
时,我可以获得18000多行。
是否有可用于更好地查看和搜索结果的在线工具或类?例如,我有一个名为“company_name”的值,它有三个级别,可能需要一段时间才能找到直接访问它的方法。
答案 0 :(得分:2)
答案 1 :(得分:2)
如果我理解正确你想使用print_r,但有换行符可以让你更容易阅读数组...
使用<pre>
标记
function print_x($arr) {
echo "<pre>";
print_r($arr);
echo "</pre>";
}
答案 2 :(得分:2)
您可以查看Krumo。
简而言之,Krumo是print_r()和var_dump()的替代品。根据定义,Krumo是一个调试工具(最初用于PHP4 / PHP5,现在仅用于PHP5),它显示有关任何PHP变量的结构化信息。
答案 3 :(得分:0)
如果你只想要一个具有可扩展/可折叠节点的数组的快速和脏的可视化表示,我将通过json_encode()
运行它并使用浏览器的开发工具来查看它。
请注意, 有更多更好的方式来显示数据(请参阅其他答案),但这一方法是最快的手头工具。
答案 4 :(得分:0)
我有一个非常确切的问题。我最终找到了一个解决方案,将输出转换为可折叠的树。
在print_r
或var_dump
之前插入此功能。
<?php
function print_r_tree($data)
{
// capture the output of print_r
$out = print_r($data, true);
// replace something like '[element] => <newline> (' with <a href="javascript:toggleDisplay('...');">...</a><div id="..." style="display: none;">
$out = preg_replace('/([ \t]*)(\[[^\]]+\][ \t]*\=\>[ \t]*[a-z0-9 \t_]+)\n[ \t]*\(/iUe',"'\\1<a href=\"javascript:toggleDisplay(\''.(\$id = substr(md5(rand().'\\0'), 0, 7)).'\');\">\\2</a><div id=\"'.\$id.'\" style=\"display: none;\">'", $out);
// replace ')' on its own on a new line (surrounded by whitespace is ok) with '</div>
$out = preg_replace('/^\s*\)\s*$/m', '</div>', $out);
// print the javascript function toggleDisplay() and then the transformed output
echo '<script language="Javascript">function toggleDisplay(id) { document.getElementById(id).style.display = (document.getElementById(id).style.display == "block") ? "none" : "block"; }</script>'."\n$out";
}
?>
而不是print_r()
,请使用print_r_tree()
。
您可以阅读有关我在类似问题here上获得的功能和其他答案的更多信息。