芝麻web文件管理V1.00
编辑当前文件:/home/strato/chroot/opt/RZphp5/includes/doc/HTML_CSS/examples/css_errorstack_logger.php
* @author Laurent Laville
* @copyright 2005-2009 Klaus Guenther, Laurent Laville * @license http://www.opensource.org/licenses/bsd-license.php BSD * @version CVS: $Id: css_errorstack_logger.php,v 1.9 2009/01/19 23:22:39 farell Exp $ * @link http://pear.php.net/package/HTML_CSS * @since File available since Release 1.0.0RC1 * @ignore */ require_once 'HTML/CSS.php'; require_once 'HTML/CSS/Error.php'; require_once 'PEAR/ErrorStack.php'; require_once 'Log.php'; /** * This class creates a css error stack object with help of PEAR_ErrorStack * * PHP versions 4 and 5 * * @category HTML * @package HTML_CSS * @subpackage Examples * @author Klaus Guenther
* @author Laurent Laville
* @copyright 2005-2009 Klaus Guenther, Laurent Laville * @license http://www.opensource.org/licenses/bsd-license.php BSD * @link http://pear.php.net/package/HTML_CSS * @since File available since Release 1.0.0RC1 * @ignore */ class HTML_CSS_ErrorStack { /** * HTML_CSS_ErrorStack class constructor */ function HTML_CSS_ErrorStack() { $s = &PEAR_ErrorStack::singleton('HTML_CSS'); $t = HTML_CSS_Error::_getErrorMessage(); $s->setErrorMessageTemplate($t); $s->setMessageCallback(array(&$this,'getMessage')); $s->setContextCallback(array(&$this,'getBacktrace')); $ident = $_SERVER['REMOTE_ADDR']; $conf = array('lineFormat' => '%1$s - %2$s [%3$s] %4$s'); $file = &Log::singleton('file', 'html_css_err.log', $ident, $conf); $conf = array('error_prepend' => '
', 'error_append' => '
'); $display = &Log::singleton('display', '', '', $conf); $composite = &Log::singleton('composite'); $composite->addChild($display); $composite->addChild($file); $s->setLogger($composite); $s->pushCallback(array(&$this,'errorHandler')); } /** * Add an error to the HTML_CSS error stack * * @param int $code Package-specific error code * @param string $level Error level. This is NOT spell-checked * @param array $params Associative array of error parameters * * @return PEAR_Error|array if compatibility mode is on */ function push($code, $level, $params) { $s = &PEAR_ErrorStack::singleton('HTML_CSS'); return $s->push($code, $level, $params); } /** * Default ErrorStack message callback is * PEAR_ErrorStack::getErrorMessage() * * @param PEAR_ErrorStack &$stack error stack * @param array $err user info error with call context * @param string|false $template Pre-generated error message template * * @return string */ function getMessage(&$stack, $err, $template = false) { global $prefs; $message = $stack->getErrorMessage($stack, $err, $template); $lineFormat = '%1$s %2$s [%3$s]'; $contextFormat = 'in %1$s on line %2$s'; if (isset($prefs['handler']['display']['lineFormat'])) { $lineFormat = $prefs['handler']['display']['lineFormat']; $lineFormat = strip_tags($lineFormat); } if (isset($prefs['handler']['display']['contextFormat'])) { $contextFormat = $prefs['handler']['display']['contextFormat']; $contextFormat = strip_tags($contextFormat); } $context = $err['context']; if ($context) { $file = $context['file']; $line = $context['line']; $contextExec = sprintf($contextFormat, $file, $line); } else { $contextExec = ''; } $msg = sprintf($lineFormat, '', $message, $contextExec); return trim($msg); } /** * Get the call backtrace from where the error was generated. * * @return mixed bool|array */ function getBacktrace() { if (function_exists('debug_backtrace')) { $backtrace = debug_backtrace(); $backtrace = $backtrace[count($backtrace)-1]; } else { $backtrace = false; } return $backtrace; } /** * Error Callback used by PEAR_ErrorStack on each error raised * * @param array $err user info error with call context * * @return void|int */ function errorHandler($err) { global $halt_onException; if ($halt_onException) { if ($err['level'] == 'exception') { return PEAR_ERRORSTACK_DIE; } } } } // set it to on if you want to halt script on any exception $halt_onException = false; // Example A. --------------------------------------------- $stack =& new HTML_CSS_ErrorStack(); $attribs = array(); $prefs = array('error_handler' => array(&$stack, 'push')); // A1. Error $css1 = new HTML_CSS($attribs, $prefs); $group1 = $css1->createGroup('body, html', 'grp1'); $group2 = $css1->createGroup('p, html', 'grp1'); // Example B. --------------------------------------------- $displayConfig = array( 'lineFormat' => '
%1$s
: %2$s
%3$s
', 'contextFormat' => '
File:
%1$s
' . '
Line:
%2$s ' ); $attribs = array(); $prefs = array( 'error_handler' => array(&$stack, 'push'), 'handler' => array('display' => $displayConfig) ); $css2 = new HTML_CSS($attribs, $prefs); // B1. Error $css2->getStyle('h1', 'class'); // B2. Exception $css2->setXhtmlCompliance('true'); print 'still alive !'; ?>