Version: 0.3
Type: Function
Category: Other
License: GNU General Public License
Description: Dump content of a variable of any kind ( array, string, numeric, object )
<?
/*
* string dump ( mixed $var );
*
* will generate a HTML-table-representation of the given
* variable
*
* (c) 2001-2002 Daniel Jaenecke <jaenecke[at]gmx[dot]li>
*/
function dump ( $var ) {
/*
* patterns for output
* customize these to change reperesentation of data
*/
$pattern_key = '<td><b>%s</b></td>';
$pattern_type = '<td><i>%s</i></td>';
$pattern_value = '<td>%s</td>';
/*
* handling non-arrays
*/
if ( !is_array ( $var ) ) {
switch ( gettype ( $var ) ) {
case 'string':
if ( empty ( $var ) ) {
return ' ';
}
else {
return sprintf ( '<code>%s</code>', htmlentities ( $var ) );
}
break; // string
case 'boolean':
if ( $var ) {
return '<i>true</i>';
}
else {
return '<i>false</i>';
}
break; // boolean
case 'object':
return dump ( array (
'class' => get_class ( $var ),
'parent_class' => get_parent_class ( $var ),
'methods' => get_class_methods ( get_class ( $var ) ),
'attributes' => get_object_vars ( $var )
) );
break; // object
case 'resource':
return sprintf ( '%s (%s)', $var, get_resource_type ( $var ) );
break; // resource
default:
return $var;
break; // default
} // switch gettype ( value )
} // !is_array
/*
* generate output
*/
$out = '<table cellspacing="0" cellpadding="1" border="1">';
foreach ( $var as $key => $value ) {
// get type of current value
$type = substr ( gettype ( $var[ $key ] ), 0, 3 );
// determine size of value if available
if ( $type == 'arr' )
$type .= sprintf ( '(%s)', sizeof ( $var[ $key ] ) );
elseif ( $type == 'str' )
$type .= sprintf ( '(%s)', strlen ( $var[ $key ] ) );
$out .= sprintf (
'<tr>' .
$pattern_key .
$pattern_type .
$pattern_value .
'</tr>',
$key, $type, dump ( $value )
);
} // foreach
$out .= '</table>';
return $out;
} // function dump ()
?>