'); ini_set('error_append_string', ''); ob_start('\SYSTEM\LOG\log::__fatal_error_handler'); } private static function call_handlers(\Exception $E, $thrown = true){ foreach(self::$handlers as $handler){ if( ((\call_user_func(array($handler,self::HANDLER_FUNC_MASK)) & $E->getCode())) && \call_user_func_array(array($handler,self::HANDLER_FUNC_CALL),array($E, $thrown))){ return true;} } return false; } public static function __exception_handler(\Exception $E, $thrown = true){ return self::call_handlers($E, $thrown) && $thrown;} public static function __error_handler($code, $message, $file, $line, $thrown = true){ return self::call_handlers(new \SYSTEM\LOG\ErrorException($message, 1, $code, $file, $line) ,$thrown);} public static function __shutdown_handler($thrown = true) { if( ($error = error_get_last()) !== NULL && !$error['type'] === E_DEPRECATED) { //http://www.dreamincode.net/forums/topic/284506-having-trouble-supressing-magic-quotes-gpc-fatal-errors/ return self::call_handlers(new \SYSTEM\LOG\ShutdownException($error["message"], 1, $error["type"],$error["file"],$error["line"]) ,$thrown);} } public static function __fatal_error_handler($bufferContent, $thrown = true){ $errors = array(); if ( preg_match('|.*|s', $bufferContent, &$errors) ){ $error = strip_tags($errors[0]); $error = substr($error,1,strlen($error)-2); $file = substr($error,strpos($error,' in ')+5,strpos($error,' on ')-5-strpos($error,' in ')); $line = intval(substr($error,strpos($error,' line ')+6)); $error = substr($error,0,strpos($error,' in ')); return \SYSTEM\LOG\JsonResult::error(new \SYSTEM\LOG\ShutdownException($error,1,1,$file,$line));} return $bufferContent; } }