Advertisement
Guest User

Untitled

a guest
Jan 26th, 2015
177
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.04 KB | None | 0 0
  1. function print_p($value = false, $exit = false, $return=false, $recurse=false) {
  2. if ($return === true && $exit === true)
  3. $return = false;
  4. $tab = str_repeat(" ", 8);
  5. if ($recurse == false) {
  6. $recurse = 0;
  7. $output = '<a class="btn btn-primary" type="button" data-toggle="collapse" data-target="#debugInfo" aria-expanded="false">
  8. Debug Info
  9. </a><pre id="debugInfo" class="collapse" style="width:100%; height:1px; border: 1px dotted #ccc; background-color: #eee; display: block; padding: 20px;">';
  10. $backtrace = debug_backtrace();
  11. $output .= '<b>Line: </b>'.$backtrace[0]['line'].'<br>';
  12. $output .= '<b>File: </b> '.$backtrace[0]['file'].'<br>';
  13. $indent = "";
  14. } else {
  15. $output = '';
  16. $indent = str_repeat("&nbsp;", $recurse * 8);
  17. }
  18. if (is_array($value)) {
  19. if ($recurse == false) {
  20. $output .= '<b>Type: </b> Array<br>';
  21. $output .= "<br>array (<br>";
  22. } else {
  23. $output .= "array (<br>";
  24. }
  25. $items = array();
  26. foreach ($value as $k=>$v) {
  27. if (is_object($v) || is_array($v))
  28. $items[] = $indent.$tab."'".$k."'=>".print_p($v, false, true, ($recurse+1));
  29. else
  30. $items[] = $indent.$tab."'".$k."'=>".($v===null ? "NULL" : "'".$v."'");
  31. }
  32. $output .= implode(',<br>', $items);
  33. if ($recurse == false)
  34. $output .= '<br>)';
  35. else
  36. $output .= '<br>'.$indent.')';
  37. } elseif (is_object($value)) {
  38. if ($recurse == false) {
  39. $output .= '<b>Type: </b> Object<br>';
  40. $output .= '<br>object ('.get_class($value).'){'."<br>";
  41. } else {
  42. $output .= "object (".get_class($value)."){<br>";
  43. }
  44.  
  45. // needed conditional because base class function dump is protected
  46. $vars = get_object_vars($value);
  47. $vars = (is_array($vars) == true ? $vars : array());
  48.  
  49. $items = array();
  50. foreach ($vars as $k=>$v) {
  51. if (is_object($v) || is_array($v))
  52. $items[] = $indent.$tab."'".$k."'=>".print_p($v, false, true, ($recurse+1));
  53. else
  54. $items[] = $indent.$tab."'".$k."'=>".($v===null ? "NULL" : "'".$v."'");
  55. }
  56. $output .= implode(',<br>', $items);
  57. $vars = get_class_methods($value);
  58. $items = array();
  59. foreach ($vars as $v) {
  60. $items[] = $indent.$tab.$tab.$v;
  61. }
  62. $output .= '<br>'.$indent.$tab.'<b>Methods</b><br>'.implode(',<br>', $items);
  63. if ($recurse == false)
  64. $output .= '<br>}';
  65. else
  66. $output .= '<br>'.$indent.'}';
  67. } else {
  68. if ($recurse == false) {
  69. $output .= '<b>Type: </b> '.gettype($value).'<br>';
  70. $output .= '<b>Value: </b> '.$value;
  71. } else {
  72. $output .= '('.gettype($value).') '.$value;
  73. }
  74. }
  75. if ($recurse == false)
  76. $output .= '</pre>';
  77. if ($return === false)
  78. echo $output;
  79. if ($exit === true)
  80. die();
  81. return $output;
  82. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement