* @license GNU General Public License, version 2 (GPL-2.0) * * For full copyright and license information, please see * the docs/CREDITS.txt file. * */ namespace phpbb; class error_collector { var $errors; function __construct() { $this->errors = array(); } function install() { set_error_handler(array(&$this, 'error_handler')); } function uninstall() { restore_error_handler(); } function error_handler($errno, $msg_text, $errfile, $errline) { $this->errors[] = array($errno, $msg_text, $errfile, $errline); } function format_errors() { $text = ''; foreach ($this->errors as $error) { if (!empty($text)) { $text .= "
\n"; } list($errno, $msg_text, $errfile, $errline) = $error; // Prevent leakage of local path to phpBB install $errfile = phpbb_filter_root_path($errfile); $text .= "Errno $errno: $msg_text at $errfile line $errline"; } return $text; } }