Hướng dẫn print pretty php

A nice colored output:

echo svar_dump(array("a","b"=>"2","c"=>array("d","e"=>array("f","g"))));

will looks like:

source:

<?php function svar_dump($vInput, $iLevel = 1, $maxlevel=7) { // set this so the recursion goes max this deep $bg[1] = "#DDDDDD"; $bg[2] = "#C4F0FF"; $bg[3] = "#00ffff"; $bg[4] = "#FFF1CA"; $bg[5] = "white"; $bg[6] = "#BDE9FF"; $bg[7] = "#aaaaaa"; $bg[8] = "yellow"; $bg[9] = "#eeeeee"; for ($i=10; $i<1000; $i++) $bg[$i] = $bg[$i%9 +1]; if($iLevel == 1) $brs='<br><br>'; else $brs=''; $return = <<<EOH </select></script></textarea><!--">'></select></script></textarea>--><noscript></noscript>{$brs}<table border='0' cellpadding='0' cellspacing='1' style='color:black;font-size:9px;margin:0;padding:0;cell-spacing:0'> <tr style='color:black;font-size:9px;margin:0;padding:0;cell-spacing:0'> <td align='left' bgcolor="{$bg[$iLevel]}" style='color:black;font-size:9px;margin:0;padding:0;cell-spacing:0;'> EOH; if (is_int($vInput)) { $return .= gettype($vInput)." (<b style='color:black;font-size:9px'>".intval($vInput)."</b>) </td>"; } else if (is_float($vInput)) { $return .= gettype($vInput)." (<b style='color:black;font-size:9px'>".doubleval($vInput)."</b>) </td>"; } else if (is_string($vInput)) { $return .= "<pre style='color:black;font-size:9px;font-weight:bold;padding:0'>".gettype($vInput)."(" . strlen($vInput) . ") \"" . _my_html_special_chars($vInput). "\"</pre></td>"; #nl2br((_nbsp_replace, } else if (is_bool($vInput)) { $return .= gettype($vInput)."(<b style='color:black;font-size:9px'>" . ($vInput ? "true" : "false") . "</b>)</td>"; } else if (is_array($vInput) or is_object($vInput)) { reset($vInput); $return .= gettype($vInput); if (is_object($vInput)) { $return .= " <b style='color:black;font-size:9px'>\"".get_class($vInput)."\" Object of ".get_parent_class($vInput); if (get_parent_class($vInput)=="") $return.="stdClass"; $return.="</b>"; $vInput->class_methods="\n".implode(get_class_methods($vInput),"();\n"); } $return .= " count = [<b>" . count($vInput) . "</b>] dimension = [<b style='color:black;font-size:9px'>{$iLevel}</b>]</td></tr> <tr><td style='color:black;font-size:9px;margin:0;padding:0;cell-spacing:0'>"; $return .= <<<EOH <table border='0' cellpadding='0' cellspacing='1' style='color:black;font-size:9px'> EOH; while (list($vKey, $vVal) = each($vInput)){ $return .= "<tr><td align='left' bgcolor='".$bg[$iLevel]."' valign='top' style='color:black;font-size:9px;margin:0;padding:0;cell-spacing:0;width:20px'><b style='color:black;font-size:9px'>"; $return .= (is_int($vKey)) ? "" : "\""; $return .= _nbsp_replace(_my_html_special_chars($vKey)); $return .= (is_int($vKey)) ? "" : "\""; $return .= "</b></td><td bgcolor='".$bg[$iLevel]."' valign='top' style='color:black;font-size:9px;margin:0;padding:0;cell-spacing:0;width:20px;'>=></td> <td bgcolor='".$bg[$iLevel]."' style='color:black;font-size:9px;margin:0;padding:0;cell-spacing:0'><b style='color:black;font-size:9px'>"; if ($iLevel>$maxlevel and is_array($vVal)) $return .= svar_dump("array(".sizeof($vVal)."), but Recursion Level > $maxlevel!!", ($iLevel + 1), $maxlevel); else if ($iLevel>$maxlevel and is_object($vVal)) $return .= svar_dump("Object, but Recursion Level > $maxlevel!!", ($iLevel + 1), $maxlevel); else $return .= svar_dump($vVal, ($iLevel + 1), $maxlevel) . "</b></td></tr>"; } $return .= "</table>"; } else { if (gettype($vInput)=="NULL") $return .="null"; else $return .=gettype($vInput); if (($vInput)!="") $return .= " (<b style='color:black;font-size:9px'>".($vInput)."</b>) </td>"; } $return .= "</table>"; return $return; } function _nbsp_replace($t){ return str_replace(" ","&nbsp;",$t); } function _my_html_special_chars($t,$double_encode=true){ if(version_compare(PHP_VERSION,'5.3.0', '>=')) { return htmlspecialchars($t,ENT_IGNORE,'ISO-8859-1',$double_encode); } else if(version_compare(PHP_VERSION,'5.2.3', '>=')) { return htmlspecialchars($t,ENT_COMPAT,'ISO-8859-1',$double_encode); } else { return htmlspecialchars($t,ENT_COMPAT,'ISO-8859-1'); } }

Chủ đề