Astral Man
We Will Rock You
Функция обработки ошибок в т.ч. фатальных
Написал функцию обработки ошибок.
вот она:
Ваше мнение? Стоит ли ее улучшать?
Написал функцию обработки ошибок.
вот она:
PHP:
error_reporting(E_ALL|E_STRICT);
ini_set('display_errors', 'On');
ini_set('error_prepend_string', "<error_msg>");
ini_set('error_append_string', "</error_msg>\n");
ini_set('html_errors', 0);
function ims_error($buffer) {
preg_match_all("~<error_msg>(((.)|(\x0A))*)</error_msg>~U", $buffer, $result, PREG_PATTERN_ORDER);
if(!isset($result[1][0])) {
return $buffer;
} else {
foreach ($result[1] as $key => $val) {
$val = trim($val);
// FATAL ERROR
if(eregi("^(Fatal error): (.*) in (.*) on line (.*)", $val, $reg)) {
$_error_fatal[] = array(
'msg' => $reg[2],
'file' => $reg[3],
'line' => $reg[4]
);
}
// WARNING
if(eregi("^(Warning): (.*) in (.*) on line (.*)", $val, $reg)) {
$_error_warning[] = array(
'msg' => $reg[2],
'file' => $reg[3],
'line' => $reg[4]
);
}
// NOTICE
if(eregi("^(Notice): (.*) in (.*) on line (.*)", $val, $reg)) {
$_error_notice[] = array(
'msg' => $reg[2],
'file' => $reg[3],
'line' => $reg[4]
);
}
}
if(isset($_error_fatal)) $_error['FATAL ERROR'] = $_error_fatal;
if(isset($_error_warning)) $_error['WARNING'] = $_error_warning;
if(isset($_error_notice)) $_error['NOTICE'] = $_error_notice;
$errors = "<div style=\"font-family: Courier New; font-size:12px\">";
foreach($_error as $key => $_err) {
$errors .= "<b>".$key." [".count($_err)."]</b><br>\n";
foreach($_err as $key => $val) {
$errors .= " MSG - ".$val['msg']."<br>\n";
$errors .= " FILE - ".$val['file']."<br>\n";
$errors .= " LINE - ".$val['line']."<br><br>\n";
}
}
$errors .= "</div>";
return $errors;
}
}
ob_start("ims_error");