📄 xmlrss2parser.php
字号:
<?php// $Id: xmlrss2parser.php,v 1.6 2003/10/04 08:36:39 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 XoopsXmlRss2Parser extends SaxParser{ var $_tempArr = array(); var $_channelData = array(); var $_imageData = array(); var $_items = array(); function XoopsXmlRss2Parser(&$input) { $this->SaxParser($input); $this->useUtfEncoding(); $this->addTagHandler(new RssChannelHandler()); $this->addTagHandler(new RssTitleHandler()); $this->addTagHandler(new RssLinkHandler()); $this->addTagHandler(new RssGeneratorHandler()); $this->addTagHandler(new RssDescriptionHandler()); $this->addTagHandler(new RssCopyrightHandler()); $this->addTagHandler(new RssNameHandler()); $this->addTagHandler(new RssManagingEditorHandler()); $this->addTagHandler(new RssLanguageHandler()); $this->addTagHandler(new RssLastBuildDateHandler()); $this->addTagHandler(new RssWebMasterHandler()); $this->addTagHandler(new RssImageHandler()); $this->addTagHandler(new RssUrlHandler()); $this->addTagHandler(new RssWidthHandler()); $this->addTagHandler(new RssHeightHandler()); $this->addTagHandler(new RssItemHandler()); $this->addTagHandler(new RssCategoryHandler()); $this->addTagHandler(new RssPubDateHandler()); $this->addTagHandler(new RssCommentsHandler()); $this->addTagHandler(new RssSourceHandler()); $this->addTagHandler(new RssAuthorHandler()); $this->addTagHandler(new RssGuidHandler()); $this->addTagHandler(new RssTextInputHandler()); } function setChannelData($name, &$value) { if (!isset($this->_channelData[$name])) { $this->_channelData[$name] =& $value; } else { $this->_channelData[$name] .= $value; } } function &getChannelData($name = null) { if (isset($name)) { if (isset($this->_channelData[$name])) { return $this->_channelData[$name]; } return false; } return $this->_channelData; } function setImageData($name, &$value) { $this->_imageData[$name] =& $value; } function &getImageData($name = null) { if (isset($name)) { if (isset($this->_imageData[$name])) { return $this->_imageData[$name]; } return false; } return $this->_imageData; } function setItems(&$itemarr) { $this->_items[] =& $itemarr; } function &getItems() { return $this->_items; } function setTempArr($name, &$value, $delim = '') { if (!isset($this->_tempArr[$name])) { $this->_tempArr[$name] =& $value; } else { $this->_tempArr[$name] .= $delim.$value; } } function getTempArr() { return $this->_tempArr; } function resetTempArr() { unset($this->_tempArr); $this->_tempArr = array(); }}class RssChannelHandler extends XmlTagHandler{ function RssChannelHandler() { } function getName() { return 'channel'; }}class RssTitleHandler extends XmlTagHandler{ function RssTitleHandler() { } function getName() { return 'title'; } function handleCharacterData(&$parser, &$data) { switch ($parser->getParentTag()) { case 'channel': $parser->setChannelData('title', $data); break; case 'image': $parser->setImageData('title', $data); break; case 'item': case 'textInput': $parser->setTempArr('title', $data); break; default: break; } }}class RssLinkHandler extends XmlTagHandler{ function RssLinkHandler() { } function getName() { return 'link'; } function handleCharacterData(&$parser, &$data) { switch ($parser->getParentTag()) { case 'channel': $parser->setChannelData('link', $data); break; case 'image': $parser->setImageData('link', $data); break; case 'item': case 'textInput': $parser->setTempArr('link', $data); break; default: break; } }}class RssDescriptionHandler extends XmlTagHandler{ function RssDescriptionHandler() { } function getName() { return 'description'; } function handleCharacterData(&$parser, &$data) { switch ($parser->getParentTag()) { case 'channel': $parser->setChannelData('description', $data); break; case 'image': $parser->setImageData('description', $data); break; case 'item': case 'textInput': $parser->setTempArr('description', $data); break; default: break; } }}class RssGeneratorHandler extends XmlTagHandler{ function RssGeneratorHandler() { } function getName() { return 'generator'; } function handleCharacterData(&$parser, &$data) { switch ($parser->getParentTag()) { case 'channel': $parser->setChannelData('generator', $data); break; default: break; } }}class RssCopyrightHandler extends XmlTagHandler{ function RssCopyrightHandler() { } function getName() { return 'copyright'; } function handleCharacterData(&$parser, &$data) { switch ($parser->getParentTag()) { case 'channel': $parser->setChannelData('copyright', $data); break; default: break; } }}class RssNameHandler extends XmlTagHandler{ function RssNameHandler() { } function getName() { return 'name'; } function handleCharacterData(&$parser, &$data) { switch ($parser->getParentTag()) { case 'textInput': $parser->setTempArr('name', $data); break; default: break; } }}class RssManagingEditorHandler extends XmlTagHandler{ function RssManagingEditorHandler() { } function getName() { return 'managingEditor'; } function handleCharacterData(&$parser, &$data) { switch ($parser->getParentTag()) { case 'channel': $parser->setChannelData('editor', $data); break; default: break; } }}class RssLanguageHandler extends XmlTagHandler{ function RssLanguageHandler() { } function getName() { return 'language'; } function handleCharacterData(&$parser, &$data) { switch ($parser->getParentTag()) { case 'channel': $parser->setChannelData('language', $data); break; default: break; } }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -