Formats a backtrace into a plain-text string.
The calls show values for scalar arguments and type names for complex ones.
array $backtrace: A standard PHP backtrace.
string A plain-text line-wrapped string ready to be put inside <pre>.
function format_backtrace(array $backtrace) {
$return = '';
foreach ($backtrace as $trace) {
$call = array(
'function' => '',
'args' => array(),
);
if (isset($trace['class'])) {
$call['function'] = $trace['class'] . $trace['type'] . $trace['function'];
}
elseif (isset($trace['function'])) {
$call['function'] = $trace['function'];
}
else {
$call['function'] = 'main';
}
foreach ($trace['args'] as $arg) {
if (is_scalar($arg)) {
$call['args'][] = is_string($arg) ? '\'' . filter_xss($arg) . '\'' : $arg;
}
else {
$call['args'][] = ucfirst(gettype($arg));
}
}
$return .= $call['function'] . '(' . implode(', ', $call['args']) . ")\n";
}
return $return;
}