\n";
$charset = true;
}
if ($level>$limit)
{
if ($plain)
{
return str_repeat(' ', 4*$level)."...\n";
}
else
{
return "...";
}
}
if (is_object($object) || (is_array($object) && count($object)>0))
{
foreach ($object as $key => $value)
{
if ($plain)
{
$result .= str_repeat(' ', 4*$level).$key;
}
else
{
if (is_array($object))
{
$result .= "".$key.'';
}
else
{
$result .= ''.$key.'';
}
}
if (is_object($value) || (is_array($value) && count($value)>0))
{
if (is_object($value))
{
if ($plain)
{
$result .= " (".get_class($value).")";
}
else
{
$result .= " ".get_class($value)."";
}
}
else
{
if ($plain)
{
$result .= " (array)";
}
else
{
$result .= " array";
}
}
if ($plain)
{
$result .= "\n";
}
else
{
$collapse = !($level+1<=1 || $title===true || (is_string($title) && substr($title,0,1)=='*'));
$collapse = false; // hack
$result .= "\n
\n
".($collapse?'+':'-')."
";
}
$result .= debug ($value, $title, $plain, $limit, $level+1);
if ($plain)
{
$result .= "";
}
else
{
$result .= "
\n";
}
}
else
{
$result .= " : ";
if ($value===null)
{
if ($plain)
{
$result .= $color_cyan."null".$color_clear;
}
else
{
$result .= "null";
}
}
else if (is_bool($value))
{
if ($value)
{
if ($plain)
{
$result .= $color_purple_light."true".$color_clear;
}
else
{
$result .= "true";
}
}
else
{
if ($plain)
{
$result .= $color_purple_light."false".$color_clear;
}
else
{
$result .= "false";
}
}
}
else if (is_integer($value) || is_float($value))
{
if ($plain)
{
$result .= $color_red_light.$value.$color_clear;
}
else
{
$result .= "".$value."";
}
}
else if (is_array($value))
{
if ($plain)
{
$result .= "[]";
}
else
{
$result .= "[]";
}
}
else
{
if ($plain)
{
$result .= $color_green_light."\"".$value."\"".$color_clear;
}
else
{
$result .= "\"".htmlspecialchars ($value,ENT_NOQUOTES,'UTF-8')."\"";
}
}
if ($plain)
{
$result .= "\n";
}
else
{
$result .= "
\n";
}
}
}
if ($level>0)
{
return $result;
}
}
else
{
if ($object===null)
{
if ($plain)
{
$result = $color_cyan."null".$color_clear;
}
else
{
$result = "null";
}
}
else if (is_bool($object))
{
if ($object)
{
if ($plain)
{
$result = $color_purple_light."true".$color_clear;
}
else
{
$result = "true";
}
}
else
{
if ($plain)
{
$result = $color_purple_light."false".$color_clear;
}
else
{
$result = "false";
}
}
}
else if (is_integer($object) || is_float($object))
{
if ($plain)
{
$result = $color_red_light.$object.$color_clear;
}
else
{
$result = "".$object."";
}
}
else if (is_array($object))
{
if ($plain)
{
$result = "[]";
}
else
{
$result = "[]";
}
}
else
{
if ($plain)
{
$result = $color_green_light."\"".$object."\"".$color_clear;
}
else
{
$result = "\"".htmlspecialchars ($object,ENT_NOQUOTES,'UTF-8')."\"";
}
}
if ($plain)
{
$result .= "\n";
}
else
{
$result .= "
\n";
}
}
if (is_null($object))
{
$type = 'null';
}
else if (is_bool($object))
{
$type = 'boolean';
}
else if (is_object($object))
{
$type = get_class($object);
}
else if (is_array($object))
{
$type = 'array';
}
else if (is_int($object))
{
$type = 'integer';
}
else if (is_float($object))
{
$type = 'float';
}
else
{
$type = 'string';
}
if ($plain)
{
$header = '';
if ($title)
{
$header = $color_cyan;
$header .= "--------------------------------------\n";
$header .= (is_bool($title) || $title===null)?$type:$title;
$header .= "\n--------------------------------------\n";
$header .= $color_clear;
}
if (is_string($plain))
{
if ($plain=='error_log')
{
error_log ("\n".$header.$result);
}
else
{
file_put_contents ($plain, $header.$result, FILE_APPEND);
}
}
else
{
echo $header.$result;
}
}
else
{
$trace = debug_backtrace();
$node = reset ($trace);
$file = basename($node['file']).":".$node['line'];
$debug = "";
foreach ($trace as $key => $value)
{
if (isset($value['file']) && $value['line'])
{
$debug .= "
".$value['file']." [".$value['line']."]
".$value['function']."";
}
else
{
$debug .= "
".$value['function']."";
}
}
$debug .= "
";
echo "\n";
echo "
".(($title && !is_bool($title))?$title:$type)."
\n";
echo $result;
echo "
\n";
}
}
?>