| Current File : //opt/RZphp81/includes/XML/Transformer/Driver/OutputBuffer.php |
<?php
//
// +---------------------------------------------------------------------------+
// | PEAR :: XML :: Transformer :: Driver :: OutputBuffer |
// +---------------------------------------------------------------------------+
// | Copyright (c) 2002-2005 Sebastian Bergmann <sb@sebastian-bergmann.de> and |
// | Kristian K�hntopp <kris@koehntopp.de>. |
// +---------------------------------------------------------------------------+
// | This source file is subject to version 3.00 of the PHP License, |
// | that is available at http://www.php.net/license/3_0.txt. |
// | If you did not receive a copy of the PHP license and are unable to |
// | obtain it through the world-wide-web, please send a note to |
// | license@php.net so we can mail you a copy immediately. |
// +---------------------------------------------------------------------------+
//
// $Id$
//
require_once 'XML/Transformer.php';
/**
* Uses PHP's Output Buffering mechanism to catch the
* output of a script, transforms it, and outputs the
* result.
*
* Example
*
* <code>
* <?php
* require_once 'XML/Transformer/Driver/OutputBuffer.php';
* require_once 'XML/Transformer/Namespace.php';
*
* class Main extends XML_Transformer_Namespace {
* function start_bold($attributes) {
* return '<b>';
* }
*
* function end_bold($cdata) {
* return $cdata . '</b>';
* }
* }
*
* $t = new XML_Transformer_Driver_OutputBuffer(
* array(
* 'overloadedNamespaces' => array(
* '&MAIN' => new Main
* )
* )
* );
* ?>
* <bold>text</bold>
* </code>
*
* Output
*
* <code>
* <b>text</b>
* </code>
*
* @author Sebastian Bergmann <sb@sebastian-bergmann.de>
* @author Kristian K�hntopp <kris@koehntopp.de>
* @copyright Copyright © 2002-2005 Sebastian Bergmann <sb@sebastian-bergmann.de> and Kristian K�hntopp <kris@koehntopp.de>
* @license http://www.php.net/license/3_0.txt The PHP License, Version 3.0
* @category XML
* @package XML_Transformer
*/
class XML_Transformer_Driver_OutputBuffer extends XML_Transformer {
// {{{ Members
/**
* @var boolean
* @access private
*/
var $_started = FALSE;
// }}}
// {{{ function XML_Transformer_Driver_OutputBuffer($parameters = array())
/**
* Constructor.
*
* @param array
* @access public
*/
function XML_Transformer_Driver_OutputBuffer($parameters = array()) {
$this->XML_Transformer($parameters);
if (!empty($this->_callbackRegistry->overloadedNamespaces)) {
$this->start();
}
}
// }}}
// {{{ function start()
/**
* Starts the output-buffering,
* and thus the transformation.
*
* @access public
*/
function start() {
if (!$this->_started) {
ob_start(
array(
$this, 'transform'
)
);
$this->_started = TRUE;
if ($this->_checkDebug()) {
$this->sendMessage(
'start: ' . serialize($this)
);
}
}
}
// }}}
}
/*
* vim600: et sw=2 ts=2 fdm=marker
* vim<600: et sw=2 ts=2
*/
?>