PHP code example of leeoniya / dump-r
1. Go to this page and download the library: Download leeoniya/dump-r library . Choose the download type require .
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
leeoniya / dump-r example snippets
function dump_r($value, $return = false, $html = true, $depth = 1e3, $expand = 1e3);
dump_r\Rend::$xml_pretty = false; // pretty-print xml strings
dump_r\Rend::$json_pretty = false; // pretty-print json strings
dump_r\Rend::$sql_pretty = false; // pretty-print sql strings ( // number of spaces between key and value columns (affects text output only, not html)
$stuff = [
'imgs/img_1771.jpg',
'data/people.csv',
];
use dump_r\Type;
// Example 1: dump EXIF data with image filepath strings
Type::hook('_String', function($raw, Type $type, $path) {
// match path-esque strings (containing '/' or '\') trailed by an
// EXIF-capable image extension, then verify this file actually exists
if (preg_match('#[\/]+.+\.(jpe?g|tiff?)$#', $raw) && is_file($raw)) {
$nodes = $exif = exif_read_data($raw, 0, true);
$len = $exif['COMPUTED']['Width'] . 'x' . $exif['COMPUTED']['Height'];
$type->types = ['image'];
$type->nodes = ['EXIF' => $nodes['EXIF']];
$type->length = $len;
return $type;
}
});
// Example 2: dump CSV records with csv filepath strings
Type::hook('_String', function($raw, Type $type, $path) {
if (preg_match('#[\/]+.+\.csv$#', $raw) && is_file($raw)) {
$type->types = ['csv'];
$type->nodes = csv2array($raw);
$type->length = count($type->nodes);
return $type;
}
});
function csv2array($file) {
$csv = [];
$rows = array_map('str_getcsv', file($file));
$header = array_shift($rows);
foreach ($rows as $row)
$csv[] = array_combine($header, $row);
return $csv;
}
Type::hook('_String\\_JSON\\_Object', function($raw, Type $type, $path) {
// code here
});
// prevent anything keyd under 'xxx' from dumping
Type::hook('*', function($raw, Type $type, $path) {
if (end($path) === 'xxx')
return false;
});
// prevent arrays keyed under 'c' from dumping sub-nodes
Type::hook('_Array', function($raw, Type $type, $path) {
if (end($path) === 'c')
$type->depth = 1;
return $type;
});
// tag nodes keyed under `yyy` with addl CSS classes
Type::hook('*', function($raw, Type $type, $path) {
if (end($path) === 'yyy') {
$type->classes[] = 'marked';
}
return $type;
});