php – 发送“var_dump”到FireBug控制台
你知道var_dump()除了值显示其数据类型和长度.
有没有办法将其输出记录到FireBug控制台? 我尝试过FirePHP和FireLogger,但都只输出变量的值(有时甚至是不正确的变量值).
也许你需要的是这样的:
function var2console($var,$name='',$now=false) { if ($var === null) $type = 'NULL'; else if (is_bool ($var)) $type = 'BOOL'; else if (is_string ($var)) $type = 'STRING['.strlen($var).']'; else if (is_int ($var)) $type = 'INT'; else if (is_float ($var)) $type = 'FLOAT'; else if (is_array ($var)) $type = 'ARRAY['.count($var).']'; else if (is_object ($var)) $type = 'OBJECT'; else if (is_resource($var)) $type = 'RESOURCE'; else $type = '???'; if (strlen($name)) { str2console("$type $name = ".var_export($var,true).';',$now); } else { str2console("$type = " .var_export($var,$now); } } function str2console($str,$now=false) { if ($now) { echo "<script type='text/javascript'>n"; echo "//<![CDATA[n"; echo "console.log(",json_encode($str),");n"; echo "//]]>n"; echo "</script>"; } else { register_shutdown_function('str2console',$str,true); } } 用法:var2console($myvar,’$myvar’);或者简单地var2console($myvar); 将$now参数设置为true很少需要,导致立即输出< script>标签.使用
Firebug控制台的输出只是 var_export()提供比 function dump2console($var,$now=false) { ob_start(); if (strlen($name)) { echo "$name =n"; } var_dump($var); $str = ob_get_clean(); str2console($str,$now); } 用法:dump2console($myvar,’$myvar’);或者简单的dump2console($myvar); 您应该避免循环引用(var_dump()检测到它们的步骤太晚,var_export()根本不会检测到它们).这是如何做到的,例如,对于$GLOBALS: function globals2console($now=false) { $g = $GLOBALS; $g['GLOBALS'] = '(recursion)'; var2console($g,'$GLOBALS',$now); } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |