You appear to be a bot. Output may be restricted
Description
Output buffering safe print_r()Activate this plugin when you get the following message from oik-bwtrace Fatal error: print_r(): Cannot use output buffering in output buffering display handlers in plugins\oik-bwtrace\includes\bwtrace.inc on line 253 (or thereabouts ) The source of this function was @link http://grokbase.com/t/php/php-notes/1219akmjd7/note-107120-added-to-function-debug-print-backtrace Explanation of the print_r() function available at http://us.php.net/manual/en/function.print-r.php .
Usage
$string = bw_trace_obsafe_print_r( $var, $level, $visitedVars );
Parameters
- $var
- ( mixed ) required – expression to be printed
- $level
- ( integer ) optional – the nesting level – used for pretty formatting
- $visitedVars
- ( array ) optional – to cater for recursive structures
Returns
string print_r() like output IF $return is trueSource
File name: oik-bwtrace/includes/bwtrace.phpLines:
1 to 60 of 60
function bw_trace_obsafe_print_r( $var, $level=0, &$visitedVars = array()) { if ( $level > 10 ) { //return( 'Max Level Reached'); } $spaces = ""; $space = " "; $newline = "\n"; for ($i = 1; $i <= 4; $i++) { $spaces .= $space; } $tabs = $spaces; for ($i = 1; $i <= $level; $i++) { $tabs .= $spaces; } if ( is_array( $var ) ) { $title = "Array"; } elseif ( is_object( $var ) ) { $title = get_class( $var )." Object"; $var = (array) $var; } else { $title = null; } if ( $title ) { $output = $title . $newline . $newline; foreach ($var as $key => $value) { if (is_array( $value ) || is_object( $value) ) { if ( is_array( $value ) && 0 == count( $value ) ) { $value = "Array"; } elseif ( is_object( $value ) && $value instanceof Closure ) { $value = 'Closure'; } else { try { $md5_serialize = md5( serialize( $value ) ); } catch ( Exception $e ) { $md5_serialize = "Nested closure? $key"; } if ( isset( $visitedVars[ $md5_serialize ] ) ) { $value = "*RECURSION* " . $visitedVars[ $md5_serialize] ; } else { $visitedVars[ $md5_serialize ] = "$key $level"; $level++; $value = bw_trace_obsafe_print_r( $value, $level, $visitedVars); $level--; } } } else { $value = '('.gettype($value).') '.(is_string($value) ? '"' : '').$value.(is_string($value) ? '"' : ''); } $key = str_replace( chr(0), " ", $key ); $output .= $tabs . "[" . $key . "] => " . $value . $newline; } } else { $output = $var; } return $output; }View on GitHub View on Trac