Fungsi alternatif print_r yang lebih cantik pada PHP
Biasanya kita sering menggunakan fungsi print_r default dari php untuk melihat data-data yg berisikan array.
Fungsi ini akan tampil dengan lebih userfriendly dengan warna-warni syntax mempermudah untuk dibaca, dan juga ada keterangan jumlah string, dan fitur lainnya.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 |
<?php // PRINT_R ALTERNATE function jin_print($data) { ob_start(); var_dump($data); $c = ob_get_contents(); ob_end_clean(); $c = preg_replace("/\r\n|\r/", "\n", $c); $c = str_replace("]=>\n", '] = ', $c); $c = preg_replace('/= {2,}/', '= ', $c); $c = preg_replace("/\[\"(.*?)\"\] = /i", "[$1] = ", $c); $c = preg_replace('/ /', " ", $c); $c = preg_replace("/\"\"(.*?)\"/i", "\"$1\"", $c); $c = htmlspecialchars($c, ENT_NOQUOTES); // Expand numbers (ie. int(2) 10 => int(1) 2 10, float(6) 128.64 => float(1) 6 128.64 etc.) $c = preg_replace("/(int|float)\(([0-9\.]+)\)/ie", "'$1('.strlen('$2').') <span class=\"number\">$2</span>'", $c); // Syntax Highlighting of Strings. This seems cryptic, but it will also allow non-terminated strings to get parsed. $c = preg_replace("/(\[[\w ]+\] = string\([0-9]+\) )\"(.*?)/sim", "$1<span class=\"string\">\"", $c); $c = preg_replace("/(\"\n{1,})( {0,}\})/sim", "$1</span>$2", $c); $c = preg_replace("/(\"\n{1,})( {0,}\[)/sim", "$1</span>$2", $c); $c = preg_replace("/(string\([0-9]+\) )\"(.*?)\"\n/sim", "$1<span class=\"string\">\"$2\"</span>\n", $c); $regex = array( // Numberrs 'numbers' => array('/(^|] = )(array|float|int|string|resource|object\(.*\)|\&object\(.*\))\(([0-9\.]+)\)/i', '$1$2(<span class="number">$3</span>)'), // Keywords 'null' => array('/(^|] = )(null)/i', '$1<span class="keyword">$2</span>'), 'bool' => array('/(bool)\((true|false)\)/i', '$1(<span class="keyword">$2</span>)'), // Types 'types' => array('/(of type )\((.*)\)/i', '$1(<span class="type">$2</span>)'), // Objects 'object' => array('/(object|\&object)\(([\w]+)\)/i', '$1(<span class="object">$2</span>)'), // Function 'function' => array('/(^|] = )(array|string|int|float|bool|resource|object|\&object)\(/i', '$1<span class="function">$2</span>('), ); foreach ($regex as $x) { $c = preg_replace($x[0], $x[1], $c); } $style = ' /* outside div - it will float and match the screen */ .dumpr { margin: 2px; padding: 2px; background-color: #fbfbfb; float: left; clear: both; } /* font size and family */ .dumpr pre { color: #000000; font-size: 9pt; font-family: "Courier New",Courier,Monaco,monospace; margin: 0px; padding-top: 5px; padding-bottom: 7px; padding-left: 9px; padding-right: 9px; } /* inside div */ .dumpr div { background-color: #fcfcfc; border: 1px solid #d9d9d9; float: left; clear: both; } /* syntax highlighting */ .dumpr span.string {color: #c40000;} .dumpr span.number {color: #ff0000;} .dumpr span.keyword {color: #007200;} .dumpr span.function {color: #0000c4;} .dumpr span.object {color: #ac00ac;} .dumpr span.type {color: #0072c4;} .legenddumpr { background-color: #fcfcfc; border: 1px solid #d9d9d9; padding: 2px; } '; $style = preg_replace("/ {2,}/", "", $style); $style = preg_replace("/\t|\r\n|\r|\n/", "", $style); $style = preg_replace("/\/\*.*?\*\//i", '', $style); $style = str_replace('}', '} ', $style); $style = str_replace(' {', '{', $style); $style = trim($style); $c = trim($c); $c = preg_replace("/\n<\/span>/", "</span>\n", $c); $isi = ""; $isi .= "<style type=\"text/css\">".$style."</style>\n"; $isi .= '<fieldset class="dumpr">'; $isi .= '<legend class="legenddumpr">'.basename($_SERVER['SCRIPT_FILENAME']).'</legend>'; //echo '<div>'; $isi .= '<pre>'.$c.' |
//echo ‘
‘;
$isi .= ‘
‘;
$isi .= “
“;
return $isi;
}
?>
Contoh penggunaan:
1 2 3 4 5 6 7 |
<?php jin_print($_GET); jin_print($_POST); jin_print($_REQUEST); jin_print($_COOKIE); jin_print($_SESSION); ?> |