<?php /** * * This file is part of the phpBB Forum Software package. * * @copyright (c) phpBB Limited <https://www.phpbb.com> * @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 .= "<br />\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; } }