php.php
来自「视频监控网络部分的协议ddns,的模块的实现代码,请大家大胆指正.」· PHP 代码 · 共 457 行
PHP
457 行
<?php//// +---------------------------------------------------------------------------+// | PEAR :: XML :: Transformer :: PHP Namespace Handler |// +---------------------------------------------------------------------------+// | Copyright (c) 2002-2004 Sebastian Bergmann <sb@sebastian-bergmann.de> and |// | Kristian K鰄ntopp <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: PHP.php,v 1.20 2004/11/20 07:35:07 sebastian Exp $//require_once 'XML/Transformer/Namespace.php';/** * Handler for the PHP Namespace. * * Example * * <code> * <?php * require_once 'XML/Transformer_OutputBuffer.php'; * require_once 'XML/Transformer/Namespace/PHP.php'; * * $t = new XML_Transformer_OutputBuffer; * $t->overloadNamespace('php', new XML_Transformer_Namespace_PHP); * $t->start(); * ?> * <html> * <body> * <dl> * <dd>Current time: <php:expr>time()</php:expr></dd> * <php:setvariable name="foo">bar</php:setvariable> * <dd>foo = <php:getvariable name="foo"/></dd> * </dl> * * <php:namespace name="my"> * <php:define name="tag"> * <h1 align="$align">$content</h1> * </php:define> * </php:namespace> * * <my:tag align="center">Some Text</my:tag> * </body> * </html> * </code> * * Output * * <code> * <html> * <body> * <dl> * <dd>Current time: 1032158587</dd> * <dd>foo = bar</dd> * </dl> * * <h1 align="center">Some Text</h1> * </body> * </html> * </code> * * @author Sebastian Bergmann <sb@sebastian-bergmann.de> * @author Kristian K鰄ntopp <kris@koehntopp.de> * @copyright Copyright © 2002-2004 Sebastian Bergmann <sb@sebastian-bergmann.de> and Kristian K鰄ntopp <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_Namespace_PHP extends XML_Transformer_Namespace { // {{{ Members /** * @var boolean * @access public */ var $defaultNamespacePrefix = 'php'; /** * @var string * @access private */ var $_defineName; /** * @var string * @access private */ var $_namespace = 'define'; /** * @var string * @access private */ var $_inNamespace = FALSE; /** * @var string * @access private */ var $_namespaceClassDefinition = ''; /** * @var string * @access private */ var $_variable = ''; // }}} // {{{ function start_define($attributes) /** * @param array * @return string * @access public */ function start_define($attributes) { if ($this->_inNamespace) { $this->_defineName = $attributes['name']; } $this->getLock(); return ''; } // }}} // {{{ function end_define($cdata) /** * @param string * @return string * @access public */ function end_define($cdata) { if (!$this->_inNamespace) return ''; $this->releaseLock(); $this->_namespaceClassDefinition .= sprintf(' var $%s_attributes = array(); function start_%s($att) { $this->%s_attributes = $att; return ""; } function end_%s($content) { foreach ($this->%s_attributes as $__k => $__v) { $$__k = $__v; } $str = "%s"; return $str; }', $this->_defineName, $this->_defineName, $this->_defineName, $this->_defineName, $this->_defineName, addslashes($cdata) ); return ''; } // }}} // {{{ function start_namespace($attributes) /** * @param array * @return string * @access public */ function start_namespace($attributes) { $this->_inNamespace = TRUE; $this->_namespace = $attributes['name']; $classname = 'PEAR_XML_TRANSFORMER_NAMESPACE_PHP_' . $this->_namespace; $this->_namespaceClassDefinition = sprintf( 'class %s extends XML_Transformer_Namespace {', $classname ); return ''; } // }}} // {{{ function end_namespace($cdata) /** * @param string * @return string * @access public */ function end_namespace($cdata) { $classname = 'PEAR_XML_TRANSFORMER_NAMESPACE_PHP_' . $this->_namespace; eval($this->_namespaceClassDefinition . ' };'); $this->_namespaceClassDefinition = ''; $this->_transformer->overloadNamespace( $this->_namespace, new $classname, TRUE ); $this->_namespace = ''; $this->_inNamespace = FALSE; return ''; } // }}} // {{{ function start_expr($attributes) /** * @param array * @return string * @access public */ function start_expr($attributes) {} // }}} // {{{ function end_expr($cdata) /** * @param string * @return string * @access public */ function end_expr($cdata) { return eval('return ' . $cdata . ';'); } // }}} // {{{ function start_logic($attributes) /** * @param array * @return string * @access public */ function start_logic($attributes) {} // }}} // {{{ function end_logic($cdata) /** * @param string * @return string * @access public */ function end_logic($cdata) { // This does not actually work in PHP 4.2.3, // when using XML_Transformer_OutputBuffer. // It should, though. ob_start(); eval($cdata); $buffer = ob_get_contents(); ob_end_clean(); return $buffer; } // }}} // {{{ function start_getparameter($attributes) /** * @param array * @return string * @access public */ function start_getparameter($attributes) { return isset($_GET[$attributes['name']]) ? $_GET[$attributes['name']] : ''; } // }}} // {{{ function end_getparameter($cdata) /** * @param string * @return string * @access public */ function end_getparameter($cdata) { return $cdata; } // }}} // {{{ function start_postparameter($attributes) /** * @param array * @return string * @access public */ function start_postparameter($attributes) { return isset($_POST[$attributes['name']]) ? $_POST[$attributes['name']] : ''; } // }}} // {{{ function end_postparameter($cdata) /** * @param string * @return string * @access public */ function end_postparameter($cdata) { return $cdata; } // }}} // {{{ function start_cookievariable($attributes) /** * @param array * @return string * @access public */ function start_cookievariable($attributes) { return isset($_COOKIE[$attributes['name']]) ? $_COOKIE[$attributes['name']] : ''; } // }}} // {{{ function end_cookievariable($cdata) /** * @param string * @return string * @access public */ function end_cookievariable($cdata) { return $cdata; } // }}} // {{{ function start_servervariable($attributes) /** * @param array * @return string * @access public */ function start_servervariable($attributes) { return isset($_SERVER[$attributes['name']]) ? $_SERVER[$attributes['name']] : ''; } // }}} // {{{ function end_servervariable($cdata) /** * @param string * @return string * @access public */ function end_servervariable($cdata) { return $cdata; } // }}} // {{{ function start_sessionvariable($attributes) /** * @param array * @return string * @access public */ function start_sessionvariable($attributes) { return isset($_SESSION[$attributes['name']]) ? $_SESSION[$attributes['name']] : ''; } // }}} // {{{ function end_sessionvariable($cdata) /** * @param string * @return string * @access public */ function end_sessionvariable($cdata) { return $cdata; } // }}} // {{{ function start_getvariable($attributes) /** * @param array * @return string * @access public */ function start_getvariable($attributes) { return isset($GLOBALS[$attributes['name']]) ? $GLOBALS[$attributes['name']] : ''; } // }}} // {{{ function end_getvariable($cdata) /** * @param string * @return string * @access public */ function end_getvariable($cdata) { return $cdata; } // }}} // {{{ function start_setvariable($attributes) /** * @param array * @return string * @access public */ function start_setvariable($attributes) { $this->_variable = isset($attributes['name']) ? $attributes['name'] : ''; return ''; } // }}} // {{{ function end_setvariable($cdata) /** * @param string * @return string * @access public */ function end_setvariable($cdata) { if ($this->_variable != '') { $GLOBALS[$this->_variable] = $cdata; $this->_variable = ''; } return ''; } // }}}}/* * vim600: et sw=2 ts=2 fdm=marker * vim<600: et sw=2 ts=2 */?>
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?