How to make print_r theme into folding lines?

Executing print_r , returns pages and pages of code; it’s too difficult to scroll pages to fit parents, even wrapped in <pre> tags.

Is there a way for the print_r theme to drop fields. Maybe an online generator where I can put the contents of print_r($array); and get a collapsible table of fields.

For example, in Drupal there is a module called Devel that does just that. Devel screenshots

+8
php
source share
3 answers

Thanks to this post , here is the solution.

Insert the following function right before print_r .

 <?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"; } ?> 

And then replace print_r() with print_r_tree() ; eg:

 <pre><?php echo print_r_tree(get_defined_vars()); ?></pre> 

Do not forget the <pre> tags.

The results look identical to the results of the print_r() function, except that the arrays are now reset.

+8
source share

If I missed something, the answer is in the screenshot: http://krumo.sourceforge.net/

EDIT (2019): try https://github.com/kint-php/kint as it is still supported today.

+10
source share

Why not parse it as JSON, and then paste it into http://jsonviewer.stack.hu/ , which makes it accessible and dumpable!

 json_encode($array); 

Example: enter image description here

+8
source share

All Articles