Skip to content

Instantly share code, notes, and snippets.

@oropesa
Last active February 14, 2020 15:02
Show Gist options
  • Save oropesa/49ab1c364429ec9e729f381819996d81 to your computer and use it in GitHub Desktop.
Save oropesa/49ab1c364429ec9e729f381819996d81 to your computer and use it in GitHub Desktop.
Pretify var_dump() - Parse var_dump 2 PHP variable (in html mode)
function var_dumpify( $dump, $echo = true, $cast2php = false ) {
ob_start();
var_dump( $dump );
$str_dump = ob_get_clean();
$str_dump = str_replace( "array(0) {\n", 'array(0) {', $str_dump );
$str_dump = str_replace( "=>\n", '=>', $str_dump );
$str_dump = str_replace( "]=>", '] =>', $str_dump );
$var_dump = '';
$lines = explode( "\n", $str_dump );
foreach( $lines as $line ) {
$index_white = strlen( $line ) - strlen( ltrim( $line ) );
$var_dump .= str_replace( " ", '&nbsp; &nbsp; ', substr( $line, 0, $index_white ) ) . trim( $line ) . '<br>';
}
$var_dump = trim(preg_replace('/\s+/', ' ', $var_dump ) );
if( $cast2php ) {
$var_dump = preg_replace(
'/object\(Closure\)(.*?){(.*?)\["parameter"\] => array\((.*?)\) {(.*?)}(.*?)}/',
'function() {},', $var_dump );
$var_dump = preg_replace(
'/object\(Closure\)(.*?){(.*?)}/',
'function() {},', $var_dump );
$var_dump = preg_replace( '/array\((.*?)\) {/', 'array(', $var_dump );
$var_dump = preg_replace( '/"<br>/', '",<br>', $var_dump );
$var_dump = preg_replace( '/}<br>/', '),<br>', $var_dump );
$var_dump = preg_replace( '/string\((.*?)\) /', '', $var_dump );
$var_dump = preg_replace( '/bool\((.*?)\)/', '$1,', $var_dump );
$var_dump = preg_replace( '/int\((.*?)\)/', '$1,', $var_dump );
$var_dump = preg_replace( '/float\((.*?)\)/', '$1,', $var_dump );
$var_dump = preg_replace( '/\["(.*?)"\]/', '"$1"', $var_dump );
$var_dump = preg_replace( '/\[(.*?)\] =>/', '$1 =>', $var_dump );
while( true ) {
$tmp_dump = preg_replace( '/(.*?)<br>$/', '$1', $var_dump );
if( strlen( $tmp_dump ) === strlen( $var_dump ) ) { break; }
$var_dump = $tmp_dump;
}
if( substr($var_dump, -1) === ',' ) {
$var_dump = substr( $var_dump, 0, strlen( $var_dump ) - 1 );
$var_dump .= ';';
}
$var_dump .= '<br><br>';
}
if( $echo ) { echo $var_dump; }
return $var_dump;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment