📄 xmlrpcparser.php
字号:
<?php// $Id: xmlrpcparser.php,v 1.5 2003/02/12 11:34:53 okazu Exp $// ------------------------------------------------------------------------ //// XOOPS - PHP Content Management System //// Copyright (c) 2000 XOOPS.org //// <http://www.xoops.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. //// //// You may not change or alter any portion of this comment or credits //// of supporting developers from this source code or any supporting //// source code which is considered copyrighted (c) material of the //// original comment or credit authors. //// //// 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., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA //// ------------------------------------------------------------------------ //// Author: Kazumi Ono (AKA onokazu) //// URL: http://www.myweb.ne.jp/, http://www.xoops.org/, http://jp.xoops.org/ //// Project: The XOOPS Project //// ------------------------------------------------------------------------- //require_once XOOPS_ROOT_PATH.'/class/xml/saxparser.php';require_once XOOPS_ROOT_PATH.'/class/xml/xmltaghandler.php';/*** Class RSS Parser** This class offers methods to parse RSS Files** @link http://www.xoops.org/ Latest release of this class* @package XOOPS* @copyright Copyright (c) 2001 xoops.org. All rights reserved.* @author Kazumi Ono <onokazu@xoops.org>* @version 1.6 ($Date: 2003/02/12 11:34:53 $) $Revision: 1.5 $* @access public*/class XoopsXmlRpcParser extends SaxParser{ /** * * * * * @access private * @var array */ var $_param; /** * * * * * @access private * @var string */ var $_methodName; /** * * * * * @access private * @var array */ var $_tempName; /** * * * * * @access private * @var array */ var $_tempValue; /** * * * * * @access private * @var array */ var $_tempMember; /** * * * * * @access private * @var array */ var $_tempStruct; /** * * * * * @access private * @var array */ var $_tempArray; /** * * * * * @access private * @var array */ var $_workingLevel = array(); /** * Constructor of the class * * * * * @access * @author * @see */ function XoopsXmlRpcParser(&$input) { $this->SaxParser($input); $this->addTagHandler(new RpcMethodNameHandler()); $this->addTagHandler(new RpcIntHandler()); $this->addTagHandler(new RpcDoubleHandler()); $this->addTagHandler(new RpcBooleanHandler()); $this->addTagHandler(new RpcStringHandler()); $this->addTagHandler(new RpcDateTimeHandler()); $this->addTagHandler(new RpcBase64Handler()); $this->addTagHandler(new RpcNameHandler()); $this->addTagHandler(new RpcValueHandler()); $this->addTagHandler(new RpcMemberHandler()); $this->addTagHandler(new RpcStructHandler()); $this->addTagHandler(new RpcArrayHandler()); } /** * This Method starts the parsing of the specified RDF File. The File can be a local or a remote File. * * @access * @author * @param * @return * @see */ function setTempName($name) { $this->_tempName[$this->getWorkingLevel()] = $name; } /** * This Method starts the parsing of the specified RDF File. The File can be a local or a remote File. * * @access * @author * @param * @return * @see */ function getTempName() { return $this->_tempName[$this->getWorkingLevel()]; } /** * This Method starts the parsing of the specified RDF File. The File can be a local or a remote File. * * @access * @author * @param * @return * @see */ function setTempValue($value) { if (is_array($value)) { settype($this->_tempValue, 'array'); foreach ($value as $k => $v) { $this->_tempValue[$k] = $v; } } elseif (is_string($value)) { if (isset($this->_tempValue)) { if (is_string($this->_tempValue)) { $this->_tempValue .= $value; } } else { $this->_tempValue = $value; } } else { $this->_tempValue = $value; } } /** * This Method starts the parsing of the specified RDF File. The File can be a local or a remote File. * * @access * @author * @param * @return * @see */ function getTempValue() { return $this->_tempValue; } /** * This Method starts the parsing of the specified RDF File. The File can be a local or a remote File. * * @access * @author * @param * @return * @see */ function resetTempValue() { unset($this->_tempValue); } /** * This Method starts the parsing of the specified RDF File. The File can be a local or a remote File. * * @access * @author * @param * @return * @see */ function setTempMember($name, $value) { $this->_tempMember[$this->getWorkingLevel()][$name] = $value; } /** * This Method starts the parsing of the specified RDF File. The File can be a local or a remote File. * * @access * @author * @param * @return * @see */ function getTempMember() { return $this->_tempMember[$this->getWorkingLevel()]; } /** * This Method starts the parsing of the specified RDF File. The File can be a local or a remote File. * * @access * @author * @param * @return * @see */ function resetTempMember() { $this->_tempMember[$this->getCurrentLevel()] = array(); } /** * This Method starts the parsing of the specified RDF File. The File can be a local or a remote File. * * @access * @author * @param * @return * @see */ function setWorkingLevel() { array_push($this->_workingLevel, $this->getCurrentLevel()); } /** * This Method starts the parsing of the specified RDF File. The File can be a local or a remote File. * * @access * @author * @param * @return * @see */ function getWorkingLevel() { return $this->_workingLevel[count($this->_workingLevel) - 1]; } /** * This Method starts the parsing of the specified RDF File. The File can be a local or a remote File. * * @access * @author * @param * @return * @see */ function releaseWorkingLevel() { array_pop($this->_workingLevel); } /** * This Method starts the parsing of the specified RDF File. The File can be a local or a remote File. * * @access * @author * @param * @return * @see */ function setTempStruct($member) { $key = key($member); $this->_tempStruct[$this->getWorkingLevel()][$key] = $member[$key]; } /** * This Method starts the parsing of the specified RDF File. The File can be a local or a remote File. * * @access * @author * @param * @return * @see */ function getTempStruct() { return $this->_tempStruct[$this->getWorkingLevel()]; } /** * This Method starts the parsing of the specified RDF File. The File can be a local or a remote File. * * @access * @author * @param * @return * @see */ function resetTempStruct() { $this->_tempStruct[$this->getCurrentLevel()] = array(); } /** * This Method starts the parsing of the specified RDF File. The File can be a local or a remote File. * * @access * @author * @param * @return * @see */ function setTempArray($value) { $this->_tempArray[$this->getWorkingLevel()][] = $value; } /** * This Method starts the parsing of the specified RDF File. The File can be a local or a remote File. * * @access * @author * @param * @return * @see */ function getTempArray() { return $this->_tempArray[$this->getWorkingLevel()]; } /** * This Method starts the parsing of the specified RDF File. The File can be a local or a remote File. * * @access * @author * @param * @return * @see */ function resetTempArray() { $this->_tempArray[$this->getCurrentLevel()] = array(); } /** * This Method starts the parsing of the specified RDF File. The File can be a local or a remote File. * * @access * @author * @param * @return * @see */ function setMethodName($methodName) { $this->_methodName = $methodName; } /** * This Method starts the parsing of the specified RDF File. The File can be a local or a remote File. * * @access * @author * @param * @return * @see */ function getMethodName() { return $this->_methodName; } /** * This Method starts the parsing of the specified RDF File. The File can be a local or a remote File. * * @access * @author * @param * @return * @see */ function setParam($value) { $this->_param[] = $value; } /** * This Method starts the parsing of the specified RDF File. The File can be a local or a remote File. * * @access * @author * @param * @return * @see */ function &getParam() { return $this->_param; }}class RpcMethodNameHandler extends XmlTagHandler{ /** * This Method starts the parsing of the specified RDF File. The File can be a local or a remote File. * * @access * @author * @param * @return * @see */ function getName() {
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -