wikierror.php

来自「php 开发的内容管理系统」· PHP 代码 · 共 126 行

PHP
126
字号
<?php/** * MediaWiki error classes * Copyright (C) 2005 Brion Vibber <brion@pobox.com> * http://www.mediawiki.org/ * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License along * with this program; if not, write to the Free Software Foundation, Inc., * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. * http://www.gnu.org/copyleft/gpl.html * * @package MediaWiki *//** * Since PHP4 doesn't have exceptions, here's some error objects * loosely modeled on the standard PEAR_Error model... * @package MediaWiki */class WikiError {	/**	 * @param string $message	 */	function WikiError( $message ) {		$this->mMessage = $message;	}	/**	 * @return string Plaintext error message to display	 */	function getMessage() {		return $this->mMessage;	}	/**	 * In following PEAR_Error model this could be formatted differently,	 * but so far it's not.	 * @return string	 */	function toString() {		return $this->getMessage();	}	/**	 * Returns true if the given object is a WikiError-descended	 * error object, false otherwise.	 *	 * @param mixed $object	 * @return bool	 * @static	 */	function isError( &$object ) {		return is_a( $object, 'WikiError' );	}}/** * Localized error message object * @package MediaWiki */class WikiErrorMsg extends WikiError {	/**	 * @param string $message Wiki message name	 * @param ... parameters to pass to wfMsg()	 */	function WikiErrorMsg( $message/*, ... */ ) {		$args = func_get_args();		array_shift( $args );		$this->mMessage = wfMsgReal( $message, $args, true );	}}/** * @package MediaWiki * @todo document */class WikiXmlError extends WikiError {	/**	 * @param resource $parser	 * @param string $message	 */	function WikiXmlError( $parser, $message = 'XML parsing error', $context = null, $offset = 0 ) {		$this->mXmlError = xml_get_error_code( $parser );		$this->mColumn = xml_get_current_column_number( $parser );		$this->mLine = xml_get_current_line_number( $parser );		$this->mByte = xml_get_current_byte_index( $parser );		$this->mContext = $this->_extractContext( $context, $offset );		$this->mMessage = $message;		xml_parser_free( $parser );		wfDebug( "WikiXmlError: " . $this->getMessage() . "\n" );	}	/** @return string */	function getMessage() {		return sprintf( '%s at line %d, col %d (byte %d%s): %s',			$this->mMessage,			$this->mLine,			$this->mColumn,			$this->mByte,			$this->mContext,			xml_error_string( $this->mXmlError ) );	}	function _extractContext( $context, $offset ) {		if( is_null( $context ) ) {			return null;		} else {			// Hopefully integer overflow will be handled transparently here			$inlineOffset = $this->mByte - $offset;			return '; "' . substr( $context, $inlineOffset, 16 ) . '"';		}	}}?>

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?